File does not exist: 2016/02/logo_mieib_peq.jpg
Request Method: | GET |
---|---|
Request URL: | https://campanha.org.br/acervo/ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo/ |
Django Version: | 5.0.2 |
Exception Type: | FileNotFoundError |
Exception Value: | File does not exist: 2016/02/logo_mieib_peq.jpg |
Exception Location: | /home/institutocampanha/env/lib/python3.11/site-packages/storages/backends/s3.py, line 550, in size |
Raised during: | collection.views.entry |
Python Executable: | /home/institutocampanha/env/bin/python3 |
Python Version: | 3.11.6 |
Python Path: | ['/home/institutocampanha/institutocampanha', '/home/institutocampanha/env/bin', '/usr/lib/python311.zip', '/usr/lib/python3.11', '/usr/lib/python3.11/lib-dynload', '/home/institutocampanha/env/lib/python3.11/site-packages'] |
Server time: | Fri, 29 Mar 2024 10:29:38 -0300 |
In template /home/institutocampanha/institutocampanha/templates/collection/entry.html
, error at line 22
12 | |
---|---|
13 | <div class="C-P FW-B TT-U">{{ active.category }}</div> |
14 | |
15 | <h1>{{ active }}</h1> |
16 | |
17 | <div class="Text">{{ active.body|safe }}</div> |
18 | |
19 | <div class="P-S MS-A C MB-3"> |
20 | <ul class="Buttons D-F JC-C AI-C"> |
21 | {% if active.link_url %}<li><a href="{{ active.link_url }}" class="Button FS-08 C-W BG-P FS-07" target="_blank"><i class="fa-regular fa-link"></i> Link</a></li>{% endif %} |
22 | {% if active.upload %}<li><a href="{{ active.upload.url }}" class="Button FS-08 C-W BG-P FS-07" download="{{ active.upload.url }}" target="_blank"><i class="fa-regular fa-cloud-arrow-down"></i> Img <span class="File-Size">({{ active.upload.size|filesizeformat }})</span></a></li>{% endif %} |
23 | {% if active.file_upload %}<li><a href="{{ active.file_upload.url }}" class="Button FS-08 C-W BG-P FS-07" download="{{ active.file_upload.url }}" target="_blank"><i class="fa-regular fa-cloud-arrow-down"></i> Doc <span class="File-Size">({{ active.file_upload.size|filesizeformat }})</span></a></li>{% endif %} |
24 | </ul> |
25 | </div> |
26 | |
27 | <div class="File-View D-F JC-C AI-C FS-3"> |
28 | {% if active.file_upload %} |
29 | {% if active.file_upload|lower|slice:"-3:" == "pdf" %} |
30 | <iframe class="W-100 B-0" src="{{ active.file_upload.url }}" loading="lazy"></iframe> |
31 | {% else %} |
32 | <a href="{{ active.file_upload.url }}" class="D-B" download="{{ active.file_upload.url }}" target="_blank"><i class="fa-regular fa-file-lines FS-3"></i></a> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 875, in _resolve_lookup
detail and shouldn't be called by external code. Use Variable.resolve()
instead.
"""
current = context
try: # catch-all for silent variable failures
for bit in self.lookups:
try: # dictionary lookup
current = current[bit] ^^^^^^^^^^^^…
# ValueError/IndexError are for numpy.array lookup on
# numpy < 1.9 and 1.9+ respectively
except (TypeError, AttributeError, KeyError, ValueError, IndexError):
try: # attribute lookup
# Don't return class attributes if the class is the context:
if isinstance(current, BaseContext) and getattr(
Variable | Value |
---|---|
bit | 'size' |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
current | <ImageFieldFile: 2016/02/logo_mieib_peq.jpg> |
self | <Variable: 'active.upload.size'> |
template_name | 'collection/entry.html' |
/home/institutocampanha/env/lib/python3.11/site-packages/storages/backends/s3.py
, line 547, in size
if key != path:
files.append(posixpath.relpath(key, path))
return directories, files
def size(self, name):
name = self._normalize_name(clean_name(name))
try:
return self.bucket.Object(name).content_length ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
except ClientError as err:
if err.response["ResponseMetadata"]["HTTPStatusCode"] == 404:
raise FileNotFoundError("File does not exist: %s" % name)
raise # Let it bubble up if it was some other error
def _get_write_parameters(self, name, content=None):
Variable | Value |
---|---|
name | '2016/02/logo_mieib_peq.jpg' |
self | <storages.backends.s3.S3Storage object at 0x7b7b089b00d0> |
/home/institutocampanha/env/lib/python3.11/site-packages/boto3/resources/factory.py
, line 381, in property_loader
# The property loader will check to see if this resource has already
# been loaded and return the cached value if possible. If not, then
# it first checks to see if it CAN be loaded (raise if not), then
# calls the load before returning the value.
def property_loader(self):
if self.meta.data is None:
if hasattr(self, 'load'):
self.load() ^^^^^^^^^^^…
else:
raise ResourceLoadException(
f'{self.__class__.__name__} has no load method'
)
return self.meta.data.get(name)
Variable | Value |
---|---|
name | 'ContentLength' |
self | s3.Object(bucket_name='institutocampanha', key='2016/02/logo_mieib_peq.jpg') |
/home/institutocampanha/env/lib/python3.11/site-packages/boto3/resources/factory.py
, line 565, in do_action
# A resource's ``load`` method is special because it sets
# values on the resource instead of returning the response.
if is_load:
# We need a new method here because we want access to the
# instance via ``self``.
def do_action(self, *args, **kwargs):
response = action(self, *args, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
self.meta.data = response
# Create the docstring for the load/reload methods.
lazy_docstring = docstring.LoadReloadDocstring(
action_name=action_model.name,
resource_name=resource_name,
Variable | Value |
---|---|
action | <boto3.resources.action.ServiceAction object at 0x7b7b04deea50> |
args | () |
kwargs | {} |
self | s3.Object(bucket_name='institutocampanha', key='2016/02/logo_mieib_peq.jpg') |
/home/institutocampanha/env/lib/python3.11/site-packages/boto3/resources/action.py
, line 88, in __call__
logger.debug(
'Calling %s:%s with %r',
parent.meta.service_name,
operation_name,
params,
)
response = getattr(parent.meta.client, operation_name)(*args, **params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
logger.debug('Response: %r', response)
return self._response_handler(parent, params, response)
Variable | Value |
---|---|
args | () |
kwargs | {} |
operation_name | 'head_object' |
params | {'Bucket': 'institutocampanha', 'Key': '2016/02/logo_mieib_peq.jpg'} |
parent | s3.Object(bucket_name='institutocampanha', key='2016/02/logo_mieib_peq.jpg') |
self | <boto3.resources.action.ServiceAction object at 0x7b7b04deea50> |
/home/institutocampanha/env/lib/python3.11/site-packages/botocore/client.py
, line 553, in _api_call
# error message than TypeError: _api_call takes exactly
# 1 argument.
if args:
raise TypeError(
f"{py_operation_name}() only accepts keyword arguments."
)
# The "self" in this scope is referring to the BaseClient.
return self._make_api_call(operation_name, kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
_api_call.__name__ = str(py_operation_name)
# Add the docstring to the client method
operation_model = service_model.operation_model(operation_name)
docstring = ClientMethodDocstring(
Variable | Value |
---|---|
args | () |
kwargs | {'Bucket': 'institutocampanha', 'Key': '2016/02/logo_mieib_peq.jpg'} |
operation_name | 'HeadObject' |
py_operation_name | 'head_object' |
self | <botocore.client.S3 object at 0x7b7b07af3d10> |
/home/institutocampanha/env/lib/python3.11/site-packages/botocore/client.py
, line 1009, in _make_api_call
if http.status_code >= 300:
error_info = parsed_response.get("Error", {})
error_code = error_info.get("QueryErrorCode") or error_info.get(
"Code"
)
error_class = self.exceptions.from_code(error_code)
raise error_class(parsed_response, operation_name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
else:
return parsed_response
def _make_request(self, operation_model, request_dict, request_context):
try:
return self._endpoint.make_request(operation_model, request_dict)
Variable | Value |
---|---|
additional_headers | {} |
api_params | {'Bucket': 'institutocampanha', 'Key': '2016/02/logo_mieib_peq.jpg'} |
endpoint_url | 'https://sfo3.digitaloceanspaces.com/institutocampanha' |
error_class | <class 'botocore.exceptions.ClientError'> |
error_code | '404' |
error_info | {'Code': '404', 'Message': 'Not Found'} |
event_response | None |
handler | <function inject_api_version_header_if_needed at 0x7b7b07b25260> |
http | <botocore.awsrequest.AWSResponse object at 0x7b7b04d31d90> |
operation_model | OperationModel(name=HeadObject) |
operation_name | 'HeadObject' |
parsed_response | {'Error': {'Code': '404', 'Message': 'Not Found'}, 'ResponseMetadata': {'HTTPHeaders': {'accept-ranges': 'bytes', 'cache-control': 'max-age=0', 'content-length': '249', 'content-type': 'application/xml', 'date': 'Fri, 29 Mar 2024 13:29:38 GMT', 'strict-transport-security': 'max-age=15552000; ' 'includeSubDomains; ' 'preload', 'vary': 'Origin, ' 'Access-Control-Request-Headers, ' 'Access-Control-Request-Method', 'x-amz-request-id': 'tx000006cdbb1a7e36c0a77-006606c242-4898d0b2-sfo3a', 'x-envoy-upstream-healthchecked-cluster': ''}, 'HTTPStatusCode': 404, 'HostId': '', 'RequestId': 'tx000006cdbb1a7e36c0a77-006606c242-4898d0b2-sfo3a', 'RetryAttempts': 0}} |
properties | {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'sfo3'}]} |
request_context | {'S3Express': {'bucket_name': 'institutocampanha'}, 'auth_type': 'v4', 'client_config': <botocore.config.Config object at 0x7b7b07af5050>, 'client_region': 'sfo3', 'endpoint_properties': {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'sfo3'}]}, 'has_streaming_input': False, 'retries': {'attempt': 1, 'invocation-id': '0bc3364e-addf-4a2d-8327-16488f17c30d', 'max': 5}, 's3_redirect': {'bucket': 'institutocampanha', 'params': {'Bucket': 'institutocampanha', 'Key': '2016/02/logo_mieib_peq.jpg'}, 'redirected': False}, 'signing': {'disableDoubleEncoding': True, 'region': 'sfo3', 'signing_name': 's3'}, 'timestamp': '20240329T132938Z'} |
request_dict | {'auth_path': '/institutocampanha/2016/02/logo_mieib_peq.jpg', 'body': b'', 'context': {'S3Express': {'bucket_name': 'institutocampanha'}, 'auth_type': 'v4', 'client_config': <botocore.config.Config object at 0x7b7b07af5050>, 'client_region': 'sfo3', 'endpoint_properties': {'authSchemes': [{'disableDoubleEncoding': True, 'name': 'sigv4', 'signingName': 's3', 'signingRegion': 'sfo3'}]}, 'has_streaming_input': False, 'retries': {'attempt': 1, 'invocation-id': '0bc3364e-addf-4a2d-8327-16488f17c30d', 'max': 5}, 's3_redirect': {'bucket': 'institutocampanha', 'params': {'Bucket': 'institutocampanha', 'Key': '2016/02/logo_mieib_peq.jpg'}, 'redirected': False}, 'signing': {'disableDoubleEncoding': True, 'region': 'sfo3', 'signing_name': 's3'}, 'timestamp': '20240329T132938Z'}, 'headers': {'User-Agent': 'Boto3/1.34.52 md/Botocore#1.34.52 ua/2.0 ' 'os/linux#6.5.0-25-generic md/arch#x86_64 ' 'lang/python#3.11.6 md/pyimpl#CPython ' 'cfg/retry-mode#legacy Botocore/1.34.52 Resource'}, 'method': 'HEAD', 'query_string': {}, 'url': 'https://sfo3.digitaloceanspaces.com/institutocampanha/2016/02/logo_mieib_peq.jpg', 'url_path': '/2016/02/logo_mieib_peq.jpg'} |
self | <botocore.client.S3 object at 0x7b7b07af3d10> |
service_id | 's3' |
service_name | 's3' |
/home/institutocampanha/env/lib/python3.11/site-packages/django/core/handlers/exception.py
, line 55, in inner
return inner
else:
@wraps(get_response)
def inner(request):
try:
response = get_response(request) ^^^^^^^^^^^^^^^^^^^^^…
except Exception as exc:
response = response_for_exception(request, exc)
return response
return inner
Variable | Value |
---|---|
exc | FileNotFoundError('File does not exist: 2016/02/logo_mieib_peq.jpg') |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7b7b09921090>> |
request | <WSGIRequest: GET '/acervo/ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo/'> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/core/handlers/base.py
, line 197, in _get_response
if response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if iscoroutinefunction(wrapped_callback):
wrapped_callback = async_to_sync(wrapped_callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
# Complain if the view returned None (a common error).
Variable | Value |
---|---|
callback | <function entry at 0x7b7b099ff060> |
callback_args | () |
callback_kwargs | {'slug': 'ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>> |
request | <WSGIRequest: GET '/acervo/ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7b7b09921090> |
wrapped_callback | <function entry at 0x7b7b099ff060> |
/home/institutocampanha/institutocampanha/collection/views.py
, line 31, in entry
context = {
'active': active,
}
Collection.objects.filter(pk=active.pk).update(pageviews=F('pageviews') + 1)
return render(request, template, context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def get_collection(request):
if request.method == 'POST' and request.headers.get('X-Requested-With') == 'XMLHttpRequest':
json_data = json.loads(request.body)
Variable | Value |
---|---|
active | <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo> |
context | {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>} |
request | <WSGIRequest: GET '/acervo/ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo/'> |
slug | 'ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo' |
template | 'collection/entry.html' |
/home/institutocampanha/env/lib/python3.11/site-packages/django/shortcuts.py
, line 25, in render
def render(
request, template_name, context=None, content_type=None, status=None, using=None
):
"""
Return an HttpResponse whose content is filled with the result of calling
django.template.loader.render_to_string() with the passed arguments.
"""
content = loader.render_to_string(template_name, context, request, using=using) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
return HttpResponse(content, content_type, status)
def redirect(to, *args, permanent=False, **kwargs):
"""
Return an HttpResponseRedirect to the appropriate URL for the arguments
Variable | Value |
---|---|
content_type | None |
context | {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>} |
request | <WSGIRequest: GET '/acervo/ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo/'> |
status | None |
template_name | 'collection/entry.html' |
using | None |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/loader.py
, line 62, in render_to_string
template_name may be a string or a list of strings.
"""
if isinstance(template_name, (list, tuple)):
template = select_template(template_name, using=using)
else:
template = get_template(template_name, using=using)
return template.render(context, request) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def _engine_list(using=None):
return engines.all() if using is None else [engines[using]]
Variable | Value |
---|---|
context | {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>} |
request | <WSGIRequest: GET '/acervo/ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo/'> |
template | <django.template.backends.django.Template object at 0x7b7b06dc4d90> |
template_name | 'collection/entry.html' |
using | None |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/backends/django.py
, line 61, in render
return self.template.origin
def render(self, context=None, request=None):
context = make_context(
context, request, autoescape=self.backend.engine.autoescape
)
try:
return self.template.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
except TemplateDoesNotExist as exc:
reraise(exc, self.backend)
def copy_exception(exc, backend=None):
"""
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
request | <WSGIRequest: GET '/acervo/ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo/'> |
self | <django.template.backends.django.Template object at 0x7b7b06dc4d90> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 171, in render
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
context.template_name = self.name
return self._render(context) ^^^^^^^^^^^^^^^^^^^^^…
else:
return self._render(context)
def compile_nodelist(self):
"""
Parse and compile the template source into a nodelist. If debug
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | <Template template_string="{% extends "base.htm..."> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 163, in _render
def __repr__(self):
return '<%s template_string="%s...">' % (
self.__class__.__qualname__,
self.source[:20].replace("\n", ""),
)
def _render(self, context):
return self.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | <Template template_string="{% extends "base.htm..."> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 1000, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | [<ExtendsNode: extends "base.html">] |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 1000, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7b7b05132980> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
node | <ExtendsNode: extends "base.html"> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 961, in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context) ^^^^^^^^^^^^^^^^^^^^…
except Exception as e:
if context.template.engine.debug:
# Store the actual node that caused the exception.
if not hasattr(e, "_culprit_node"):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | <ExtendsNode: extends "base.html"> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/loader_tags.py
, line 159, in render
}
block_context.add_blocks(blocks)
break
# Call Template._render explicitly so the parser context stays
# the same.
with context.render_context.push_state(compiled_parent, isolated_context=False):
return compiled_parent._render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
class IncludeNode(Node):
context_key = "__include_context"
def __init__(
Variable | Value |
---|---|
block_context | <BlockContext: blocks=defaultdict(<class 'list'>, {'Breadcrumb': [<Block Node: Breadcrumb. Contents: []>, <Block Node: Breadcrumb. Contents: [<TextNode: '<a href="'>, <URLNode view_name=''cnde:home'' args=[] kwargs={} as=None>, <TextNode: '">Início</a> » <a href="'>, <URLNode view_name=''collection:index'' args=[] kwargs={} as=None>, <TextNode: '">Acervo</a> » '>, <Variable Node: active.category>]>], 'Content': [<Block Node: Content. Contents: [<TextNode: '\n'>]>], 'HeaderTitle': [<Block Node: HeaderTitle. Contents: [<IfNode>]>], 'HeaderDescription': [<Block Node: HeaderDescription. Contents: [<TextNode: 'Com mais de 20 anos de at'>]>], 'OGTitle': [<Block Node: OGTitle. Contents: [<IfNode>]>], 'OGDescription': [<Block Node: OGDescription. Contents: []>], 'OGImage': [<Block Node: OGImage. Contents: [<IfNode>]>], 'OGImageSecure': [<Block Node: OGImageSecure. Contents: [<IfNode>]>], 'JavaScript': [<Block Node: JavaScript. Contents: [<TextNode: '\n'>]>]})> |
blocks | {'Breadcrumb': <Block Node: Breadcrumb. Contents: []>, 'Content': <Block Node: Content. Contents: [<TextNode: '\n'>]>, 'HeaderDescription': <Block Node: HeaderDescription. Contents: [<TextNode: 'Com mais de 20 anos de at'>]>, 'HeaderTitle': <Block Node: HeaderTitle. Contents: [<IfNode>]>, 'JavaScript': <Block Node: JavaScript. Contents: [<TextNode: '\n'>]>, 'OGDescription': <Block Node: OGDescription. Contents: []>, 'OGImage': <Block Node: OGImage. Contents: [<IfNode>]>, 'OGImageSecure': <Block Node: OGImageSecure. Contents: [<IfNode>]>, 'OGTitle': <Block Node: OGTitle. Contents: [<IfNode>]>} |
compiled_parent | <Template template_string="{% load static %}<!..."> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
node | <django.template.defaulttags.LoadNode object at 0x7b7b08cddc10> |
self | <ExtendsNode: extends "base.html"> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 163, in _render
def __repr__(self):
return '<%s template_string="%s...">' % (
self.__class__.__qualname__,
self.source[:20].replace("\n", ""),
)
def _render(self, context):
return self.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
with context.bind_template(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | <Template template_string="{% load static %}<!..."> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 1000, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | [<django.template.defaulttags.LoadNode object at 0x7b7b08cddc10>, <TextNode: '\n<!DOCTYPE html>\n<html>\n<'>, <IncludeNode: template=<FilterExpression '"apps/google-tagmanager-head.html"'>>, <TextNode: '\n <meta charset="utf-8">'>, <Block Node: HeaderTitle. Contents: [<IfNode>]>, <TextNode: '</title>\n <meta name="de'>, <Block Node: HeaderDescription. Contents: [<TextNode: 'Com mais de 20 anos de at'>]>, <TextNode: '" />\n <script defer src='>, StaticNode(varname=None, path=<FilterExpression "'js/nav.js'">), <TextNode: '"></script>\n <!-- Favico'>, StaticNode(varname=None, path=<FilterExpression "'img/favicon/apple-touch-icon.png'">), <TextNode: '">\n <link rel="icon" typ'>, StaticNode(varname=None, path=<FilterExpression "'img/favicon/favicon-32x32.png'">), <TextNode: '">\n <link rel="icon" typ'>, StaticNode(varname=None, path=<FilterExpression "'img/favicon/favicon-16x16.png'">), <TextNode: '">\n <!-- Style -->\n <l'>, StaticNode(varname=None, path=<FilterExpression "'css/base.css'">), <TextNode: '" />\n <script src="https'>, StaticNode(varname=None, path=<FilterExpression "'fontawesomefree/css/fontawesome.css'">), <TextNode: '" rel="stylesheet" type="'>, StaticNode(varname=None, path=<FilterExpression "'fontawesomefree/css/brands.css'">), <TextNode: '" rel="stylesheet" type="'>, StaticNode(varname=None, path=<FilterExpression "'fontawesomefree/css/solid.css'">), <TextNode: '" rel="stylesheet" type="'>, StaticNode(varname=None, path=<FilterExpression "'fontawesomefree/css/regular.css'">), <TextNode: '" rel="stylesheet" type="'>, <Variable Node: request.build_absolute_uri>, <TextNode: '"/>\n <meta property="og:'>, <Block Node: OGTitle. Contents: [<IfNode>]>, <TextNode: '"/>\n <meta property="og:'>, <Block Node: OGDescription. Contents: []>, <TextNode: '"/>\n <meta property="og:'>, <Block Node: OGImage. Contents: [<IfNode>]>, <TextNode: '"/>\n <meta property="og:'>, <Block Node: OGImageSecure. Contents: [<IfNode>]>, <TextNode: '"/>\n</head>\n\n\n\n<body'>, <IfNode>, <TextNode: '>\n'>, <IncludeNode: template=<FilterExpression '"apps/google-tagmanager-body.html"'>>, <TextNode: '\n'>, <IfNode>, <TextNode: '\n\n\n\n<div class="Header">\n'>, <URLNode view_name=''cnde:home'' args=[] kwargs={} as=None>, <TextNode: '"><img src="'>, StaticNode(varname=None, path=<FilterExpression "'img/CNDE.png'">), <TextNode: '" class="Logo"></a></figu'>, <IncludeNode: template=<FilterExpression "'assets/social-links.html'">>, <TextNode: '\n '>, <IncludeNode: template=<FilterExpression "'assets/nav-search.html'">>, <TextNode: '\n\n </header>\n \n '>, <URLNode view_name=''cnde:home'' args=[] kwargs={} as=None>, <TextNode: '">Início</a></li>\n <'>, <URLNode view_name=''podcasts:index'' args=[] kwargs={} as=None>, <TextNode: '">Podcasts</a></li>\n '>, <URLNode view_name=''news:index'' args=[] kwargs={} as=None>, <TextNode: '">Notícias</a></li>\n '>, <URLNode view_name=''collection:index'' args=[] kwargs={} as=None>, <TextNode: '">Acervo</a></li>\n '>, <URLNode view_name=''specials:index'' args=[] kwargs={} as=None>, <TextNode: '">Especiais</a></li>\n '>, <URLNode view_name=''assays:index'' args=[] kwargs={} as=None>, <TextNode: '">Análises</a></li>\n '>, <URLNode view_name=''support:contact'' args=[] kwargs={} as=None>, <TextNode: '">Contato</a></li>\n '>, <IfNode>, <TextNode: '\n\n\n\n'>, <IfNode>, <TextNode: '\n\n\n\n'>, <IfNode>, <TextNode: '\n\n\n\n<main class="Containe'>, <Block Node: Content. Contents: [<TextNode: '\n'>]>, <TextNode: '\n\n</main>\n\n\n\n<footer clas'>, <URLNode view_name=''cnde:home'' args=[] kwargs={} as=None>, <TextNode: '"><figure><img src="'>, StaticNode(varname=None, path=<FilterExpression "'img/CNDE-V.png'">), <TextNode: '"></figure></a></div>\n <'>, StaticNode(varname=None, path=<FilterExpression "'img/CC.png'">), <TextNode: '" loading="lazy" />\n '>, <IncludeNode: template=<FilterExpression "'assets/social-links.html'">>, <TextNode: '\n\n <div class="MT-1">\n'>, <Variable N… <trimmed 4461 bytes string> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 1000, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7b7b05130640> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
node | <Block Node: Content. Contents: [<TextNode: '\n'>]> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 961, in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context) ^^^^^^^^^^^^^^^^^^^^…
except Exception as e:
if context.template.engine.debug:
# Store the actual node that caused the exception.
if not hasattr(e, "_culprit_node"):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | <Block Node: Content. Contents: [<TextNode: '\n'>]> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/loader_tags.py
, line 65, in render
push = block = block_context.pop(self.name)
if block is None:
block = self
# Create new block so we can store context without thread-safety issues.
block = type(self)(block.name, block.nodelist)
block.context = context
context["block"] = block
result = block.nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
if push is not None:
block_context.push(self.name, push)
return result
def super(self):
if not hasattr(self, "context"):
Variable | Value |
---|---|
block | <Block Node: Content. Contents: [<TextNode: '\n<div class="Container">\n'>, <Variable Node: active.category>, <TextNode: '</div>\n\n <h1>'>, <Variable Node: active>, <TextNode: '</h1>\n\n <div class="Te'>, <Variable Node: active.body|safe>, <TextNode: '</div>\n\n <div class="P'>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </ul>\n </div>\n\n'>, <IfNode>, <TextNode: '\n </div>\n\n </section>'>]> |
block_context | <BlockContext: blocks=defaultdict(<class 'list'>, {'Breadcrumb': [<Block Node: Breadcrumb. Contents: []>, <Block Node: Breadcrumb. Contents: [<TextNode: '<a href="'>, <URLNode view_name=''cnde:home'' args=[] kwargs={} as=None>, <TextNode: '">Início</a> » <a href="'>, <URLNode view_name=''collection:index'' args=[] kwargs={} as=None>, <TextNode: '">Acervo</a> » '>, <Variable Node: active.category>]>], 'Content': [<Block Node: Content. Contents: [<TextNode: '\n'>]>], 'HeaderTitle': [<Block Node: HeaderTitle. Contents: [<IfNode>]>], 'HeaderDescription': [<Block Node: HeaderDescription. Contents: [<TextNode: 'Com mais de 20 anos de at'>]>], 'OGTitle': [<Block Node: OGTitle. Contents: [<IfNode>]>], 'OGDescription': [<Block Node: OGDescription. Contents: []>], 'OGImage': [<Block Node: OGImage. Contents: [<IfNode>]>], 'OGImageSecure': [<Block Node: OGImageSecure. Contents: [<IfNode>]>], 'JavaScript': [<Block Node: JavaScript. Contents: [<TextNode: '\n'>]>]})> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
push | <Block Node: Content. Contents: [<TextNode: '\n<div class="Container">\n'>, <Variable Node: active.category>, <TextNode: '</div>\n\n <h1>'>, <Variable Node: active>, <TextNode: '</h1>\n\n <div class="Te'>, <Variable Node: active.body|safe>, <TextNode: '</div>\n\n <div class="P'>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </ul>\n </div>\n\n'>, <IfNode>, <TextNode: '\n </div>\n\n </section>'>]> |
self | <Block Node: Content. Contents: [<TextNode: '\n'>]> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 1000, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | [<TextNode: '\n<div class="Container">\n'>, <Variable Node: active.category>, <TextNode: '</div>\n\n <h1>'>, <Variable Node: active>, <TextNode: '</h1>\n\n <div class="Te'>, <Variable Node: active.body|safe>, <TextNode: '</div>\n\n <div class="P'>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n '>, <IfNode>, <TextNode: '\n </ul>\n </div>\n\n'>, <IfNode>, <TextNode: '\n </div>\n\n </section>'>] |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 1000, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7b7b05132e30> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
node | <IfNode> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 961, in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context) ^^^^^^^^^^^^^^^^^^^^…
except Exception as e:
if context.template.engine.debug:
# Store the actual node that caused the exception.
if not hasattr(e, "_culprit_node"):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | <IfNode> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/defaulttags.py
, line 326, in render
match = condition.eval(context)
except VariableDoesNotExist:
match = None
else: # else clause
match = True
if match:
return nodelist.render(context) ^^^^^^^^^^^^^^^^^^^^^^^^…
return ""
class LoremNode(Node):
def __init__(self, count, method, common):
Variable | Value |
---|---|
condition | (literal <FilterExpression 'active.upload'>) |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
match | <ImageFieldFile: 2016/02/logo_mieib_peq.jpg> |
nodelist | [<TextNode: '<li><a href="'>, <Variable Node: active.upload.url>, <TextNode: '" class="Button FS-08 C-W'>, <Variable Node: active.upload.url>, <TextNode: '" target="_blank"><i clas'>, <Variable Node: active.upload.size|filesizeformat>, <TextNode: ')</span></a></li>'>] |
self | <IfNode> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 1000, in render
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | [<TextNode: '<li><a href="'>, <Variable Node: active.upload.url>, <TextNode: '" class="Button FS-08 C-W'>, <Variable Node: active.upload.url>, <TextNode: '" target="_blank"><i clas'>, <Variable Node: active.upload.size|filesizeformat>, <TextNode: ')</span></a></li>'>] |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 1000, in <listcomp>
class NodeList(list):
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self])) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
nodes.extend(node.get_nodes_by_type(nodetype))
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7b7b051323b0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
node | <Variable Node: active.upload.size|filesizeformat> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 961, in render_annotated
"""
Render the node. If debug is True and an exception occurs during
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context) ^^^^^^^^^^^^^^^^^^^^…
except Exception as e:
if context.template.engine.debug:
# Store the actual node that caused the exception.
if not hasattr(e, "_culprit_node"):
e._culprit_node = self
if (
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | <Variable Node: active.upload.size|filesizeformat> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 1059, in render
self.filter_expression = filter_expression
def __repr__(self):
return "<Variable Node: %s>" % self.filter_expression
def render(self, context):
try:
output = self.filter_expression.resolve(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
except UnicodeDecodeError:
# Unicode conversion can fail sometimes for reasons out of our
# control (e.g. exception rendering). In that case, we fail
# quietly.
return ""
return render_value_in_context(output, context)
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | <Variable Node: active.upload.size|filesizeformat> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 710, in resolve
self.filters = filters
self.var = var_obj
self.is_var = isinstance(var_obj, Variable)
def resolve(self, context, ignore_failures=False):
if self.is_var:
try:
obj = self.var.resolve(context) ^^^^^^^^^^^^^^^^^^^^^^^^^…
except VariableDoesNotExist:
if ignore_failures:
obj = None
else:
string_if_invalid = context.template.engine.string_if_invalid
if string_if_invalid:
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
ignore_failures | False |
self | <FilterExpression 'active.upload.size|filesizeformat'> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 842, in resolve
)
self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
def resolve(self, context):
"""Resolve this variable against a given context."""
if self.lookups is not None:
# We're dealing with a variable that needs to be resolved
value = self._resolve_lookup(context) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
else:
# We're dealing with a literal, so it's already been "resolved"
value = self.literal
if self.translate:
is_safe = isinstance(value, SafeData)
msgid = value.replace("%", "%%")
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
self | <Variable: 'active.upload.size'> |
/home/institutocampanha/env/lib/python3.11/site-packages/django/template/base.py
, line 885, in _resolve_lookup
except (TypeError, AttributeError, KeyError, ValueError, IndexError):
try: # attribute lookup
# Don't return class attributes if the class is the context:
if isinstance(current, BaseContext) and getattr(
type(current), bit
):
raise AttributeError
current = getattr(current, bit) ^^^^^^^^^^^^^^^^^^^^^…
except (TypeError, AttributeError):
# Reraise if the exception was raised by a @property
if not isinstance(current, BaseContext) and bit in dir(current):
raise
try: # list-index lookup
current = current[int(bit)]
Variable | Value |
---|---|
bit | 'size' |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'active': <Collection: Ag. Senado: CE realiza segunda audiência pública sobre Educação e Federalismo>}] |
current | <ImageFieldFile: 2016/02/logo_mieib_peq.jpg> |
self | <Variable: 'active.upload.size'> |
template_name | 'collection/entry.html' |
/home/institutocampanha/env/lib/python3.11/site-packages/django/db/models/fields/files.py
, line 74, in size
return self.storage.url(self.name)
@property
def size(self):
self._require_file()
if not self._committed:
return self.file.size
return self.storage.size(self.name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
def open(self, mode="rb"):
self._require_file()
if getattr(self, "_file", None) is None:
self.file = self.storage.open(self.name, mode)
else:
Variable | Value |
---|---|
self | <ImageFieldFile: 2016/02/logo_mieib_peq.jpg> |
/home/institutocampanha/env/lib/python3.11/site-packages/storages/backends/s3.py
, line 550, in size
def size(self, name):
name = self._normalize_name(clean_name(name))
try:
return self.bucket.Object(name).content_length
except ClientError as err:
if err.response["ResponseMetadata"]["HTTPStatusCode"] == 404:
raise FileNotFoundError("File does not exist: %s" % name) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^…
raise # Let it bubble up if it was some other error
def _get_write_parameters(self, name, content=None):
params = self.get_object_parameters(name)
if "ContentType" not in params:
Variable | Value |
---|---|
name | '2016/02/logo_mieib_peq.jpg' |
self | <storages.backends.s3.S3Storage object at 0x7b7b089b00d0> |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'campanha.org.br' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '35.153.156.108' |
HTTP_X_FORWARDED_PROTO | 'https' |
HTTP_X_REAL_IP | '35.153.156.108' |
PATH_INFO | '/acervo/ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo/' |
QUERY_STRING | '' |
RAW_URI | '/acervo/ag-senado-ce-realiza-segunda-audiencia-publica-sobre-educacao-e-federalismo/' |
REMOTE_ADDR | '' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | 'campanha.org.br' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.0' |
SERVER_SOFTWARE | 'gunicorn/21.2.0' |
gunicorn.socket | <socket.socket fd=9, family=1, type=1, proto=0, laddr=/run/gunicorn.sock> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7b7b05131390> |
wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
wsgi.input | <gunicorn.http.body.Body object at 0x7b7b05283f50> |
wsgi.input_terminated | True |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
institutocampanha.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['campanha.org.br', 'www.campanha.org.br', '64.23.218.181', 'localhost'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
AWS_ACCESS_KEY_ID | '********************' |
AWS_S3_CUSTOM_DOMAIN | 'media.campanha.org.br' |
AWS_S3_ENDPOINT_URL | 'https://sfo3.digitaloceanspaces.com' |
AWS_S3_OBJECT_PARAMETERS | {'CacheControl': 'max-age=86400'} |
AWS_S3_REGION_NAME | 'sfo3' |
AWS_SECRET_ACCESS_KEY | '********************' |
AWS_STORAGE_BUCKET_NAME | 'institutocampanha' |
BASE_DIR | PosixPath('/home/institutocampanha/institutocampanha') |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CKEDITOR_CONFIGS | {'default': {'entities': False, 'entities_latin': False, 'extraPlugins': 'youtube', 'height': 300, 'removePlugins': 'iframe', 'toolbar': 'Custom', 'toolbar_Custom': [['Bold', 'Italic', 'Underline'], ['TextColor', 'BGColor'], ['Image', 'Youtube'], ['NumberedList', 'BulletedList', '-', 'Outdent', 'Indent', '-', 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyBlock'], ['Link', 'Unlink'], ['Blockquote'], ['Styles', 'Format', 'Font', 'FontSize'], ['Undo', 'Redo'], ['Maximize', 'RemoveFormat', 'Source']], 'width': '100%'}} |
CKEDITOR_UPLOAD_PATH | 'uploads/' |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | 'Lax' |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_HEALTH_CHECKS': False, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql', 'HOST': 'private-db-postgresql-sfo3-38686-do-user-15923450-0.c.db.ondigitalocean.com', 'NAME': 'institutocampanha', 'OPTIONS': {'sslmode': 'require'}, 'PASSWORD': '********************', 'PORT': 25060, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'doadmin'}} |
DATABASE_ROUTERS | [] |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
DATA_UPLOAD_MAX_NUMBER_FILES | 100 |
DATETIME_FORMAT | 'N j, Y, P' |
DATETIME_INPUT_FORMATS | ['%Y-%m-%d %H:%M:%S', '%Y-%m-%d %H:%M:%S.%f', '%Y-%m-%d %H:%M', '%m/%d/%Y %H:%M:%S', '%m/%d/%Y %H:%M:%S.%f', '%m/%d/%Y %H:%M', '%m/%d/%y %H:%M:%S', '%m/%d/%y %H:%M:%S.%f', '%m/%d/%y %H:%M'] |
DATE_FORMAT | 'N j, Y' |
DATE_INPUT_FORMATS | ['%Y-%m-%d', '%m/%d/%Y', '%m/%d/%y', '%b %d %Y', '%b %d, %Y', '%d %b %Y', '%d %b, %Y', '%B %d %Y', '%B %d, %Y', '%d %B %Y', '%d %B, %Y'] |
DEBUG | True |
DEBUG_PROPAGATE_EXCEPTIONS | False |
DECIMAL_SEPARATOR | '.' |
DEFAULT_AUTO_FIELD | 'django.db.models.BigAutoField' |
DEFAULT_CHARSET | 'utf-8' |
DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'storages.backends.s3boto3.S3Boto3Storage' |
DEFAULT_FROM_EMAIL | 'comunicacao@campanhaeducacao.org.br' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DEFAULT_TO_EMAIL | 'comunicacao@campanhaeducacao.org.br' |
DISALLOWED_USER_AGENTS | [] |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
EMAIL_HOST | 'smtp.gmail.com' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | 'comunicacao@campanhaeducacao.org.br' |
EMAIL_PORT | 587 |
EMAIL_SSL_CERTFILE | None |
EMAIL_SSL_KEYFILE | '********************' |
EMAIL_SUBJECT_PREFIX | '[Django] ' |
EMAIL_TIMEOUT | None |
EMAIL_USE_LOCALTIME | False |
EMAIL_USE_SSL | False |
EMAIL_USE_TLS | True |
FILE_UPLOAD_DIRECTORY_PERMISSIONS | None |
FILE_UPLOAD_HANDLERS | ['django.core.files.uploadhandler.MemoryFileUploadHandler', 'django.core.files.uploadhandler.TemporaryFileUploadHandler'] |
FILE_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
FILE_UPLOAD_PERMISSIONS | 511 |
FILE_UPLOAD_TEMP_DIR | None |
FIRST_DAY_OF_WEEK | 0 |
FIXTURE_DIRS | [] |
FORCE_SCRIPT_NAME | None |
FORMAT_MODULE_PATH | None |
FORMS_URLFIELD_ASSUME_HTTPS | False |
FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
IGNORABLE_404_URLS | [] |
INSTALLED_APPS | ['tags.apps.TagsConfig', 'search.apps.SearchConfig', 'logs.apps.LogsConfig', 'support.apps.SupportConfig', 'home.apps.HomeConfig', 'news.apps.NewsConfig', 'collection.apps.CollectionConfig', 'assays.apps.AssaysConfig', 'cnde.apps.CNDEConfig', 'sam.apps.SAMConfig', 'gremios.apps.GremiosConfig', 'podcasts.apps.PodcastsConfig', 'states.apps.StatesConfig', 'specials.apps.SpecialsConfig', 'fundeb.apps.FUNDEBConfig', 'caq.apps.CAQConfig', 'cc.apps.CCConfig', 'relus.apps.ReLusConfig', 'si.apps.SIConfig', 'covid19.apps.COVID19Config', 'cartacompromisso.apps.CartaCompromissoConfig', 'invisibilizadas.apps.InvisibilizadasConfig', 'chatbots.apps.ChatbotsConfig', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sitemaps', 'django.contrib.sites', 'django.contrib.redirects', 'ckeditor', 'ckeditor_uploader', 'fontawesomefree', 'django_htmx'] |
INTERNAL_IPS | [] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('ckb', 'Central Kurdish (Sorani)'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('ms', 'Malay'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('ug', 'Uyghur'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'ckb', 'fa', 'ug', 'ur'] |
LANGUAGE_CODE | 'pt-br' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_HTTPONLY | False |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LANGUAGE_COOKIE_SAMESITE | None |
LANGUAGE_COOKIE_SECURE | False |
LOCALE_PATHS | [] |
LOGGING | {} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | '' |
MEDIA_URL | 'https://media.campanha.org.br/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.contrib.redirects.middleware.RedirectFallbackMiddleware', 'django_htmx.middleware.HtmxMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PREPEND_WWW | False |
ROOT_URLCONF | 'institutocampanha.urls' |
SECRET_KEY | '********************' |
SECRET_KEY_FALLBACKS | '********************' |
SECURE_CONTENT_TYPE_NOSNIFF | True |
SECURE_CROSS_ORIGIN_OPENER_POLICY | 'same-origin' |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | None |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_REFERRER_POLICY | 'same-origin' |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | False |
SERVER_EMAIL | 'comunicacao@campanhaeducacao.org.br' |
SESSION_CACHE_ALIAS | 'default' |
SESSION_COOKIE_AGE | 1209600 |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_HTTPONLY | True |
SESSION_COOKIE_NAME | 'sessionid' |
SESSION_COOKIE_PATH | '/' |
SESSION_COOKIE_SAMESITE | 'Lax' |
SESSION_COOKIE_SECURE | False |
SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
SESSION_FILE_PATH | None |
SESSION_SAVE_EVERY_REQUEST | False |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'institutocampanha.settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
SITE_ID | 1 |
STATICFILES_DIRS | (PosixPath('/home/institutocampanha/institutocampanha/static'),) |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | PosixPath('/home/institutocampanha/institutocampanha/../static') |
STATIC_URL | '/static/' |
STORAGES | {'default': {'BACKEND': 'storages.backends.s3boto3.S3Boto3Storage'}, 'staticfiles': {'BACKEND': 'django.contrib.staticfiles.storage.StaticFilesStorage'}} |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [PosixPath('/home/institutocampanha/institutocampanha/templates')], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}] |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'America/Sao_Paulo' |
USE_I18N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'institutocampanha.wsgi.application' |
X_FRAME_OPTIONS | 'DENY' |
YEAR_MONTH_FORMAT | 'F Y' |
You’re seeing this error because you have DEBUG = True
in your
Django settings file. Change that to False
, and Django will
display a standard page generated by the handler for this status code.