'str' object has no attribute '__dict__'
Request Method: | GET |
---|---|
Request URL: | https://sippybee.com/store/wines/sippybee-wine-tastings-cava-brut-reserva/ |
Django Version: | 4.0.4 |
Exception Type: | AttributeError |
Exception Value: | 'str' object has no attribute '__dict__' |
Exception Location: | /workspace/apps/tasting_notes/templatetags/custom_tags.py, line 56, in key |
Python Executable: | /app/.heroku/python/bin/python |
Python Version: | 3.11.3 |
Python Path: | ['/workspace/.heroku/python/bin', '/workspace', '/workspace/.heroku/python/lib/python311.zip', '/workspace/.heroku/python/lib/python3.11', '/workspace/.heroku/python/lib/python3.11/lib-dynload', '/workspace/.heroku/python/lib/python3.11/site-packages'] |
Server time: | Fri, 29 Mar 2024 01:52:32 +0000 |
In template /workspace/templates/store/productdetail.html
, error at line 115
105 | {% for item in arr.split %} |
---|---|
106 | {% with info|key:item as i %} |
107 | <li> |
108 | <img src="/static/svg/icon_help.svg" alt="info" class="info"> |
109 | <div class="tooltip">{{ i.tooltip }}</div> |
110 | {{ i.alt }} |
111 | </li> |
112 | <li> |
113 | <div class="rating_circle"> |
114 | {% for i in '12345'|make_list %} |
115 | {% with product.productnote|key:item as rating %} |
116 | <div {% if rating >= forloop.counter %} class="active"{% endif %}></div> |
117 | {% endwith %} |
118 | {% endfor %} |
119 | </div> |
120 | </li> |
121 | {% endwith %} |
122 | {% endfor %} |
123 | {% endwith %} |
124 | </ul> |
125 | </div> |
/workspace/.heroku/python/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 | AttributeError("'str' object has no attribute '__dict__'") |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7f315a5e7550>> |
request | <WSGIRequest: GET '/store/wines/sippybee-wine-tastings-cava-brut-reserva/'> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/core/handlers/base.py
, line 220, in _get_response
self.check_response(
response,
middleware_method,
name="%s.process_template_response"
% (middleware_method.__self__.__class__.__name__,),
)
try:
response = response.render()…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
return response
Variable | Value |
---|---|
callback | <function View.as_view.<locals>.view at 0x7f3159f15b20> |
callback_args | () |
callback_kwargs | {'slug': 'sippybee-wine-tastings-cava-brut-reserva'} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <CsrfViewMiddleware get_response=convert_exception_to_response.<locals>.inner>> |
request | <WSGIRequest: GET '/store/wines/sippybee-wine-tastings-cava-brut-reserva/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7f315a5e7550> |
wrapped_callback | <function View.as_view.<locals>.view at 0x7f3159f15b20> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/response.py
, line 114, in render
If the content has already been rendered, this is a no-op.
Return the baked response instance.
"""
retval = self
if not self._is_rendered:
self.content = self.rendered_content…
for post_callback in self._post_render_callbacks:
newretval = post_callback(retval)
if newretval is not None:
retval = newretval
return retval
Variable | Value |
---|---|
retval | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
self | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/response.py
, line 92, in rendered_content
This *does not* set the final content of the response. To set the
response content, you must either call render(), or set the
content explicitly using the value of this property.
"""
template = self.resolve_template(self.template_name)
context = self.resolve_context(self.context_data)
return template.render(context, self._request)…
def add_post_render_callback(self, callback):
"""Add a new post-rendering callback.
If the response has already been rendered,
invoke the callback immediately.
Variable | Value |
---|---|
context | {'bottles_left': -6, 'info': {'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level ' 'of tartness, crispness, and freshness of the ' 'wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from ' 'low to high.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the ' 'weight, texture, and fullness of the wine in ' 'your mouth. It is one of the most important ' 'characteristics of a wine and can be described ' 'as light-bodied, medium-bodied, or ' 'full-bodied.'}, 'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the ' 'amount of residual sugar that is left in ' 'the wine after fermentation is complete.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that ' 'has very little residual sugar, resulting in ' 'a crisp, refreshing taste with a clean ' 'finish.'}}, 'object': <Product: Cava Brut Reserva>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'product': <Product: Cava Brut Reserva>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>} |
self | <TemplateResponse status_code=200, "text/html; charset=utf-8"> |
template | <django.template.backends.django.Template object at 0x7f3158c4a5d0> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/backends/django.py
, line 62, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
request | <WSGIRequest: GET '/store/wines/sippybee-wine-tastings-cava-brut-reserva/'> |
self | <django.template.backends.django.Template object at 0x7f3158c4a5d0> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 175, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <Template template_string="{% extends "_partial..."> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 167, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <Template template_string="{% extends "_partial..."> |
/workspace/.heroku/python/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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | [<ExtendsNode: extends "_partials/base.html">] |
/workspace/.heroku/python/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 0x7f31581af1c0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
node | <ExtendsNode: extends "_partials/base.html"> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 958, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <ExtendsNode: extends "_partials/base.html"> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/loader_tags.py
, line 157, 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'>, {'title': [<Block Node: title. Contents: [<Variable Node: site.name>, <TextNode: ' | '>, <Variable Node: site.title>, <TextNode: ' | Virtual Wine tasting o'>]>, <Block Node: title. Contents: [<Variable Node: product.product_name>, <TextNode: ' '>, <Variable Node: product.vintage>, <TextNode: ' | Wines - '>, <Variable Node: site.name>]>], 'description': [<Block Node: description. Contents: [<Variable Node: site.default_seo_description>]>, <Block Node: description. Contents: [<Variable Node: product.seo_description>]>], 'content': [<Block Node: content. Contents: []>], 'head_scripts': [<Block Node: head_scripts. Contents: []>], 'body_scripts': [<Block Node: body_scripts. Contents: []>]})> |
blocks | {'body_scripts': <Block Node: body_scripts. Contents: []>, 'content': <Block Node: content. Contents: []>, 'description': <Block Node: description. Contents: [<Variable Node: site.default_seo_description>]>, 'head_scripts': <Block Node: head_scripts. Contents: []>, 'title': <Block Node: title. Contents: [<Variable Node: site.name>, <TextNode: ' | '>, <Variable Node: site.title>, <TextNode: ' | Virtual Wine tasting o'>]>} |
compiled_parent | <Template template_string="{% load static %}<..."> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
node | <django.template.defaulttags.LoadNode object at 0x7f31577c1050> |
self | <ExtendsNode: extends "_partials/base.html"> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 167, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <Template template_string="{% load static %}<..."> |
/workspace/.heroku/python/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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | [<django.template.defaulttags.LoadNode object at 0x7f31577c1050>, <TextNode: '\n\n<!DOCTYPE html>\n<html>\n'>, <Block Node: title. Contents: [<Variable Node: site.name>, <TextNode: ' | '>, <Variable Node: site.title>, <TextNode: ' | Virtual Wine tasting o'>]>, <TextNode: '</title>\n\t\t\t<!-- Google T'>, StaticNode(varname=None, path=<FilterExpression "'js/flowbite.min.js'">), <TextNode: '"></script>\n\n\t\t<!-- Favic'>, <Block Node: description. Contents: [<Variable Node: site.default_seo_description>]>, <TextNode: '">\n\t\t<meta name="keywords'>, StaticNode(varname=None, path=<FilterExpression "'dist/main.css'">), <TextNode: '">\n\t\t<script type="text/j'>, <Variable Node: cart_json|safe>, <TextNode: '\'),\n\t\t\t\t"cartType": "'>, <Variable Node: cart_type>, <TextNode: '",\n\t\t\t\t"user": {\n\t\t\t\t\t"is'>, <Variable Node: user.is_authenticated>, <TextNode: '"\n\t\t\t\t},\n\t\t\t\t"urls": {\n\t\t'>, <URLNode view_name=''cart:cart_summary'' args=[] kwargs={} as=None>, <TextNode: '"\n\t\t\t\t},\n\t\t\t\t"reviews": ['>, <Block Node: head_scripts. Contents: []>, <TextNode: '\n\t</head>\n\n\t<body>\n\t\t<!--'>, <django.template.defaulttags.CsrfTokenNode object at 0x7f31577c36d0>, <TextNode: '\n\n\t\t<!-- Header -->\n\t\t'>, <IncludeNode: template=<FilterExpression '"_partials/header.html"'>>, <TextNode: '\n\n\t\t<!-- Content -->\n\t\t<d'>, <Block Node: content. Contents: []>, <TextNode: '</div>\n\n\t\t<!-- Main -->\n\t'>, <IncludeNode: template=<FilterExpression '"_partials/footer.html"'>>, <TextNode: '\n\n\t\t<!-- Popup -->\n\t\t'>, <IfNode>, <TextNode: '\n\t\n\t\t<!-- JS -->\n\t\t<scrip'>, StaticNode(varname=None, path=<FilterExpression "'dist/main.js'">), <TextNode: '"></script>\n\t\t<script typ'>, StaticNode(varname=None, path=<FilterExpression "'js/flowbite.min.js'">), <TextNode: '"></script>\n\n\t\t'>, <Block Node: body_scripts. Contents: []>, <TextNode: '\n\t</body>\n</html>\n'>] |
/workspace/.heroku/python/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 0x7f31581afee0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
node | <Block Node: content. Contents: []> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 958, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <Block Node: content. Contents: []> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/loader_tags.py
, line 63, 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\t'>, <IncludeNode: template=<FilterExpression "'store/floating.section.html'">>, <TextNode: '\n\t<div class="container n'>, <Variable Node: product.product_name>, <TextNode: '</h1>\n\t\t\t\t\t<h6 class="!mb'>, <Variable Node: product.sub_region>, <TextNode: ', '>, <Variable Node: product.country>, <TextNode: '</h6>\n\t\t\t\t\t'>, <IfNode>, <TextNode: '\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Mai'>, <IncludeNode: template=<FilterExpression '"_partials/img.html"'>>, <TextNode: '\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Fea'>, <django.template.defaulttags.CommentNode object at 0x7f315841a110>, <TextNode: '\n\n\t\t\t\t<!-- Show images --'>, <django.template.defaulttags.CommentNode object at 0x7f315841b3d0>, <TextNode: '\n\n\t\t\t</div>\n\n\t\t\t<!-- Prod'>, <Variable Node: product.product_name>, <TextNode: '</h1>\n\t\t\t\t<h6 class="regi'>, <Variable Node: product.sub_region>, <TextNode: ', '>, <Variable Node: product.country>, <TextNode: '</h6>\n\t\t\t\t<!-- '>, <IfNode>, <TextNode: ' -->\n\n\t\t\t\t<div class="gri'>, <ForNode: for item in product.get_critical_acclaim, tail_len: 7>, <TextNode: '\n\t\t\t\t</div>\n\n\t\t\t\t<!--\tYel'>, <IfNode>, <TextNode: '\n\t\t\t\t\t<div class="block f'>, <Variable Node: bottles_left>, <TextNode: ' btls left</div>\n\t\t\t\t\t<di'>, <WithNode>, <TextNode: '\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</div>\n'>, <Variable Node: product.productnote.val_one>, <TextNode: '",\n\t\t\t\t\t\t\t2: "'>, <Variable Node: product.productnote.val_two>, <TextNode: '",\n\t\t\t\t\t\t\t3: "'>, <Variable Node: product.productnote.val_three>, <TextNode: '",\n\t\t\t\t\t\t\t4: "'>, <Variable Node: product.productnote.val_four>, <TextNode: '",\n\t\t\t\t\t\t\t5: "'>, <Variable Node: product.productnote.val_five>, <TextNode: '"\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t'>, <ForNode: for val in product.productnote.flavors_dominant.all, tail_len: 5>, <TextNode: '\n\n\t\t\t\t\t</script>\n\n\t\t\t\t</d'>, <IfNode>, <TextNode: '\n\n\t\t\t\t<!-- Description --'>, <Variable Node: product.description |safe>, <TextNode: '</p>\n\t\t\t\t</div>\n\n\t\t\t\t<spa'>, <Variable Node: product.product_name|escape>, <TextNode: '"\n\t\t\t\t\t\t\tdata-slug="'>, <Variable Node: product.slug>, <TextNode: '" data-showicon="true"></'>, <Variable Node: product.get_price>, <TextNode: '</h2>\n\t\t\t\t\t</div>\n\n\t\t\t\t</'>, <Variable Node: product.product_type>, <TextNode: '</h2>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>B'>, <Variable Node: product.brand>, <TextNode: '</li>\n\t\t\t\t\t<li>Style</li>'>, <Variable Node: product.product_style>, <TextNode: '</li>\n\t\t\t\t\t<li>Alcohol Co'>, <Variable Node: product.alc_content>, <TextNode: '°</li>\n\t\t\t\t\t<li>Size</li>'>, <Variable Node: product.size>, <TextNode: 'g</li>\n\t\t\t\t\t<li>Region</l'>, <Variable Node: product.region>, <TextNode: ', '>, <Variable Node: product.country>, <TextNode: '</li>\n\t\t\t\t\t<li>Grapes</li'>, <ForNode: for g in product.get_grapes, tail_len: 7>, <TextNode: '\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t'>, <ForNode: for item in pairswell, tail_len: 5>, <TextNode: '\n\t\t\t\t</ul>\n\t\t\t</div>\n\n\t\t\t'>, <Variable Node: product.product_type>, <TextNode: '</span>\n\t\t</div>\n\n\n\t\t<!--'>, <ForNode: for tasting in related_tastings, tail_len: 3>, <TextNode: '\n\t\t\t</div>\n\t\t</div>\n\n\t</d'>]> |
block_context | <BlockContext: blocks=defaultdict(<class 'list'>, {'title': [<Block Node: title. Contents: [<Variable Node: site.name>, <TextNode: ' | '>, <Variable Node: site.title>, <TextNode: ' | Virtual Wine tasting o'>]>, <Block Node: title. Contents: [<Variable Node: product.product_name>, <TextNode: ' '>, <Variable Node: product.vintage>, <TextNode: ' | Wines - '>, <Variable Node: site.name>]>], 'description': [<Block Node: description. Contents: [<Variable Node: site.default_seo_description>]>, <Block Node: description. Contents: [<Variable Node: product.seo_description>]>], 'content': [<Block Node: content. Contents: []>], 'head_scripts': [<Block Node: head_scripts. Contents: []>], 'body_scripts': [<Block Node: body_scripts. Contents: []>]})> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
push | <Block Node: content. Contents: [<TextNode: '\n\t'>, <IncludeNode: template=<FilterExpression "'store/floating.section.html'">>, <TextNode: '\n\t<div class="container n'>, <Variable Node: product.product_name>, <TextNode: '</h1>\n\t\t\t\t\t<h6 class="!mb'>, <Variable Node: product.sub_region>, <TextNode: ', '>, <Variable Node: product.country>, <TextNode: '</h6>\n\t\t\t\t\t'>, <IfNode>, <TextNode: '\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Mai'>, <IncludeNode: template=<FilterExpression '"_partials/img.html"'>>, <TextNode: '\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Fea'>, <django.template.defaulttags.CommentNode object at 0x7f315841a110>, <TextNode: '\n\n\t\t\t\t<!-- Show images --'>, <django.template.defaulttags.CommentNode object at 0x7f315841b3d0>, <TextNode: '\n\n\t\t\t</div>\n\n\t\t\t<!-- Prod'>, <Variable Node: product.product_name>, <TextNode: '</h1>\n\t\t\t\t<h6 class="regi'>, <Variable Node: product.sub_region>, <TextNode: ', '>, <Variable Node: product.country>, <TextNode: '</h6>\n\t\t\t\t<!-- '>, <IfNode>, <TextNode: ' -->\n\n\t\t\t\t<div class="gri'>, <ForNode: for item in product.get_critical_acclaim, tail_len: 7>, <TextNode: '\n\t\t\t\t</div>\n\n\t\t\t\t<!--\tYel'>, <IfNode>, <TextNode: '\n\t\t\t\t\t<div class="block f'>, <Variable Node: bottles_left>, <TextNode: ' btls left</div>\n\t\t\t\t\t<di'>, <WithNode>, <TextNode: '\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</div>\n'>, <Variable Node: product.productnote.val_one>, <TextNode: '",\n\t\t\t\t\t\t\t2: "'>, <Variable Node: product.productnote.val_two>, <TextNode: '",\n\t\t\t\t\t\t\t3: "'>, <Variable Node: product.productnote.val_three>, <TextNode: '",\n\t\t\t\t\t\t\t4: "'>, <Variable Node: product.productnote.val_four>, <TextNode: '",\n\t\t\t\t\t\t\t5: "'>, <Variable Node: product.productnote.val_five>, <TextNode: '"\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t'>, <ForNode: for val in product.productnote.flavors_dominant.all, tail_len: 5>, <TextNode: '\n\n\t\t\t\t\t</script>\n\n\t\t\t\t</d'>, <IfNode>, <TextNode: '\n\n\t\t\t\t<!-- Description --'>, <Variable Node: product.description |safe>, <TextNode: '</p>\n\t\t\t\t</div>\n\n\t\t\t\t<spa'>, <Variable Node: product.product_name|escape>, <TextNode: '"\n\t\t\t\t\t\t\tdata-slug="'>, <Variable Node: product.slug>, <TextNode: '" data-showicon="true"></'>, <Variable Node: product.get_price>, <TextNode: '</h2>\n\t\t\t\t\t</div>\n\n\t\t\t\t</'>, <Variable Node: product.product_type>, <TextNode: '</h2>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>B'>, <Variable Node: product.brand>, <TextNode: '</li>\n\t\t\t\t\t<li>Style</li>'>, <Variable Node: product.product_style>, <TextNode: '</li>\n\t\t\t\t\t<li>Alcohol Co'>, <Variable Node: product.alc_content>, <TextNode: '°</li>\n\t\t\t\t\t<li>Size</li>'>, <Variable Node: product.size>, <TextNode: 'g</li>\n\t\t\t\t\t<li>Region</l'>, <Variable Node: product.region>, <TextNode: ', '>, <Variable Node: product.country>, <TextNode: '</li>\n\t\t\t\t\t<li>Grapes</li'>, <ForNode: for g in product.get_grapes, tail_len: 7>, <TextNode: '\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t'>, <ForNode: for item in pairswell, tail_len: 5>, <TextNode: '\n\t\t\t\t</ul>\n\t\t\t</div>\n\n\t\t\t'>, <Variable Node: product.product_type>, <TextNode: '</span>\n\t\t</div>\n\n\n\t\t<!--'>, <ForNode: for tasting in related_tastings, tail_len: 3>, <TextNode: '\n\t\t\t</div>\n\t\t</div>\n\n\t</d'>]> |
self | <Block Node: content. Contents: []> |
/workspace/.heroku/python/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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | [<TextNode: '\n\t'>, <IncludeNode: template=<FilterExpression "'store/floating.section.html'">>, <TextNode: '\n\t<div class="container n'>, <Variable Node: product.product_name>, <TextNode: '</h1>\n\t\t\t\t\t<h6 class="!mb'>, <Variable Node: product.sub_region>, <TextNode: ', '>, <Variable Node: product.country>, <TextNode: '</h6>\n\t\t\t\t\t'>, <IfNode>, <TextNode: '\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Mai'>, <IncludeNode: template=<FilterExpression '"_partials/img.html"'>>, <TextNode: '\n\t\t\t\t</div>\n\n\t\t\t\t<!-- Fea'>, <django.template.defaulttags.CommentNode object at 0x7f315841a110>, <TextNode: '\n\n\t\t\t\t<!-- Show images --'>, <django.template.defaulttags.CommentNode object at 0x7f315841b3d0>, <TextNode: '\n\n\t\t\t</div>\n\n\t\t\t<!-- Prod'>, <Variable Node: product.product_name>, <TextNode: '</h1>\n\t\t\t\t<h6 class="regi'>, <Variable Node: product.sub_region>, <TextNode: ', '>, <Variable Node: product.country>, <TextNode: '</h6>\n\t\t\t\t<!-- '>, <IfNode>, <TextNode: ' -->\n\n\t\t\t\t<div class="gri'>, <ForNode: for item in product.get_critical_acclaim, tail_len: 7>, <TextNode: '\n\t\t\t\t</div>\n\n\t\t\t\t<!--\tYel'>, <IfNode>, <TextNode: '\n\t\t\t\t\t<div class="block f'>, <Variable Node: bottles_left>, <TextNode: ' btls left</div>\n\t\t\t\t\t<di'>, <WithNode>, <TextNode: '\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t</div>\n'>, <Variable Node: product.productnote.val_one>, <TextNode: '",\n\t\t\t\t\t\t\t2: "'>, <Variable Node: product.productnote.val_two>, <TextNode: '",\n\t\t\t\t\t\t\t3: "'>, <Variable Node: product.productnote.val_three>, <TextNode: '",\n\t\t\t\t\t\t\t4: "'>, <Variable Node: product.productnote.val_four>, <TextNode: '",\n\t\t\t\t\t\t\t5: "'>, <Variable Node: product.productnote.val_five>, <TextNode: '"\n\t\t\t\t\t\t};\n\n\t\t\t\t\t\t'>, <ForNode: for val in product.productnote.flavors_dominant.all, tail_len: 5>, <TextNode: '\n\n\t\t\t\t\t</script>\n\n\t\t\t\t</d'>, <IfNode>, <TextNode: '\n\n\t\t\t\t<!-- Description --'>, <Variable Node: product.description |safe>, <TextNode: '</p>\n\t\t\t\t</div>\n\n\t\t\t\t<spa'>, <Variable Node: product.product_name|escape>, <TextNode: '"\n\t\t\t\t\t\t\tdata-slug="'>, <Variable Node: product.slug>, <TextNode: '" data-showicon="true"></'>, <Variable Node: product.get_price>, <TextNode: '</h2>\n\t\t\t\t\t</div>\n\n\t\t\t\t</'>, <Variable Node: product.product_type>, <TextNode: '</h2>\n\t\t\t\t<ul>\n\t\t\t\t\t<li>B'>, <Variable Node: product.brand>, <TextNode: '</li>\n\t\t\t\t\t<li>Style</li>'>, <Variable Node: product.product_style>, <TextNode: '</li>\n\t\t\t\t\t<li>Alcohol Co'>, <Variable Node: product.alc_content>, <TextNode: '°</li>\n\t\t\t\t\t<li>Size</li>'>, <Variable Node: product.size>, <TextNode: 'g</li>\n\t\t\t\t\t<li>Region</l'>, <Variable Node: product.region>, <TextNode: ', '>, <Variable Node: product.country>, <TextNode: '</li>\n\t\t\t\t\t<li>Grapes</li'>, <ForNode: for g in product.get_grapes, tail_len: 7>, <TextNode: '\n\t\t\t\t\t</li>\n\t\t\t\t</ul>\n\t\t\t'>, <ForNode: for item in pairswell, tail_len: 5>, <TextNode: '\n\t\t\t\t</ul>\n\t\t\t</div>\n\n\t\t\t'>, <Variable Node: product.product_type>, <TextNode: '</span>\n\t\t</div>\n\n\n\t\t<!--'>, <ForNode: for tasting in related_tastings, tail_len: 3>, <TextNode: '\n\t\t\t</div>\n\t\t</div>\n\n\t</d'>] |
/workspace/.heroku/python/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 0x7f31589167d0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
node | <WithNode> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 958, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <WithNode> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/defaulttags.py
, line 542, in render
def __repr__(self):
return "<%s>" % self.__class__.__name__
def render(self, context):
values = {key: val.resolve(context) for key, val in self.extra_context.items()}
with context.push(**values):
return self.nodelist.render(context)…
@register.tag
def autoescape(parser, token):
"""
Force autoescape behavior for this block.
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <WithNode> |
values | {'arr': 'sweetness body tannin acidity alcohol'} |
/workspace/.heroku/python/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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | [<TextNode: '\n\t\t\t\t\t\t\t\t'>, <ForNode: for item in arr.split, tail_len: 3>, <TextNode: '\n\t\t\t\t\t\t\t'>] |
/workspace/.heroku/python/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 0x7f3158917f10> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
node | <ForNode: for item in arr.split, tail_len: 3> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 958, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <ForNode: for item in arr.split, tail_len: 3> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/defaulttags.py
, line 238, in render
unpacked_vars = dict(zip(self.loopvars, item))
pop_context = True
context.update(unpacked_vars)
else:
context[self.loopvars[0]] = item
for node in self.nodelist_loop:
nodelist.append(node.render_annotated(context))…
if pop_context:
# Pop the loop variables pushed on to the context to avoid
# the context ending up in an inconsistent state when other
# tags (e.g., include and with) push data to context.
context.pop()
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
i | 0 |
item | 'sweetness' |
len_values | 5 |
loop_dict | {'counter': 1, 'counter0': 0, 'first': True, 'last': False, 'parentloop': {}, 'revcounter': 5, 'revcounter0': 4} |
node | <WithNode> |
nodelist | ['\n\t\t\t\t\t\t\t\t\t'] |
num_loopvars | 1 |
parentloop | {} |
pop_context | False |
self | <ForNode: for item in arr.split, tail_len: 3> |
unpack | False |
values | ['sweetness', 'body', 'tannin', 'acidity', 'alcohol'] |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 958, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <WithNode> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/defaulttags.py
, line 542, in render
def __repr__(self):
return "<%s>" % self.__class__.__name__
def render(self, context):
values = {key: val.resolve(context) for key, val in self.extra_context.items()}
with context.push(**values):
return self.nodelist.render(context)…
@register.tag
def autoescape(parser, token):
"""
Force autoescape behavior for this block.
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <WithNode> |
values | {'i': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual ' 'sugar that is left in the wine after fermentation is ' 'complete.'}} |
/workspace/.heroku/python/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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | [<TextNode: '\n\t\t\t\t\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t\t\t'>, <Variable Node: i.tooltip>, <TextNode: '</div>\n\t\t\t\t\t\t\t\t\t\t\t'>, <Variable Node: i.alt>, <TextNode: '\n\t\t\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t\t'>, <ForNode: for i in '12345'|make_list, tail_len: 3>, <TextNode: '\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t'>] |
/workspace/.heroku/python/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 0x7f3158915480> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
node | <ForNode: for i in '12345'|make_list, tail_len: 3> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 958, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <ForNode: for i in '12345'|make_list, tail_len: 3> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/defaulttags.py
, line 238, in render
unpacked_vars = dict(zip(self.loopvars, item))
pop_context = True
context.update(unpacked_vars)
else:
context[self.loopvars[0]] = item
for node in self.nodelist_loop:
nodelist.append(node.render_annotated(context))…
if pop_context:
# Pop the loop variables pushed on to the context to avoid
# the context ending up in an inconsistent state when other
# tags (e.g., include and with) push data to context.
context.pop()
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
i | 0 |
item | '1' |
len_values | 5 |
loop_dict | {'counter': 1, 'counter0': 0, 'first': True, 'last': False, 'parentloop': {'counter': 1, 'counter0': 0, 'first': True, 'last': False, 'parentloop': {}, 'revcounter': 5, 'revcounter0': 4}, 'revcounter': 5, 'revcounter0': 4} |
node | <WithNode> |
nodelist | ['\n\t\t\t\t\t\t\t\t\t\t\t\t\t'] |
num_loopvars | 1 |
parentloop | {'counter': 1, 'counter0': 0, 'first': True, 'last': False, 'parentloop': {}, 'revcounter': 5, 'revcounter0': 4} |
pop_context | False |
self | <ForNode: for i in '12345'|make_list, tail_len: 3> |
unpack | False |
values | ['1', '2', '3', '4', '5'] |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 958, 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}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <WithNode> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/defaulttags.py
, line 540, in render
if name:
self.extra_context[name] = var
def __repr__(self):
return "<%s>" % self.__class__.__name__
def render(self, context):
values = {key: val.resolve(context) for key, val in self.extra_context.items()}…
with context.push(**values):
return self.nodelist.render(context)
@register.tag
def autoescape(parser, token):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
self | <WithNode> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/defaulttags.py
, line 540, in <dictcomp>
if name:
self.extra_context[name] = var
def __repr__(self):
return "<%s>" % self.__class__.__name__
def render(self, context):
values = {key: val.resolve(context) for key, val in self.extra_context.items()}…
with context.push(**values):
return self.nodelist.render(context)
@register.tag
def autoescape(parser, token):
Variable | Value |
---|---|
.0 | <dict_itemiterator object at 0x7f3158c364d0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
key | 'rating' |
val | <FilterExpression 'product.productnote|key:item'> |
/workspace/.heroku/python/lib/python3.11/site-packages/django/template/base.py
, line 739, in resolve
else:
arg_vals.append(arg.resolve(context))
if getattr(func, "expects_localtime", False):
obj = template_localtime(obj, context.use_tz)
if getattr(func, "needs_autoescape", False):
new_obj = func(obj, autoescape=context.autoescape, *arg_vals)
else:
new_obj = func(obj, *arg_vals)…
if getattr(func, "is_safe", False) and isinstance(obj, SafeData):
obj = mark_safe(new_obj)
else:
obj = new_obj
return obj
Variable | Value |
---|---|
arg | <Variable: 'item'> |
arg_vals | ['sweetness'] |
args | [(True, <Variable: 'item'>)] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'object': <Product: Cava Brut Reserva>, 'product': <Product: Cava Brut Reserva>, 'view': <apps.store.views.ProductDetailView object at 0x7f3158105c50>, 'pairswell': <QuerySet [<Pairing: BRIE - Delicate and Nutty - Cheese>, <Pairing: OYSTER - Mollusk - Seafood>, <Pairing: CLAM - Mollusk - Seafood>, <Pairing: SHRIMP - Shellfish - Seafood>]>, 'bottles_left': -6, 'related_tastings': <QuerySet [<Tastingset: Sipping the Bold: Big Red Wines>, <Tastingset: Exploring Red Wine Varietals>, <Tastingset: Exploring the World of Wine 101>, <Tastingset: Exploring White Wine Varietals>]>, 'related': [<Product: 2021 Terra Alpina Pinot Grigio Vigneti delle Dolomiti IGT>, <Product: Dr. Hans VonMuller Riesling Kabinett>, <Product: Mont Gravet>, <Product: Wapi - Sauvignon Blanc>], 'info': {'sweetness': {'alt': 'Fruit', 'tooltip': 'In wine tasting, SWEETNESS refers to the amount of residual sugar that is left in the wine after fermentation is complete.'}, 'body': {'alt': 'Body', 'tooltip': 'In wine tasting, the term BODY refers to the weight, texture, and fullness of the wine in your mouth. It is one of the most important characteristics of a wine and can be described as light-bodied, medium-bodied, or full-bodied.'}, 'tannin': {'alt': 'Dry', 'tooltip': 'In wine tasting, DRY refers to a wine that has very little residual sugar, resulting in a crisp, refreshing taste with a clean finish.'}, 'acidity': {'alt': 'Acidity', 'tooltip': 'In wine tasting, ACIDITY refers to the level of tartness, crispness, and freshness of the wine.'}, 'alcohol': {'alt': 'Alcohol', 'tooltip': 'The alcohol content in wine can range from low to high.'}}}] |
func | <function key at 0x7f3158d56200> |
ignore_failures | False |
lookup | True |
obj | '' |
self | <FilterExpression 'product.productnote|key:item'> |
/workspace/apps/tasting_notes/templatetags/custom_tags.py
, line 56, in key
# Get dict value by key
@register.filter
def key(d, k):
if not isinstance(d, dict): # convert d to dictionary if it is not one
d = d.__dict__…
return d[k]
register.filter('key', key)
Variable | Value |
---|---|
d | '' |
k | 'sweetness' |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
CSRF_COOKIE | '0rXnejlJOQTuGxONAkmdKq3JOSUswz693o3lgYP0Xx7YSWMqVzUkG5PKmy95B7sE' |
CSRF_COOKIE_NEEDS_UPDATE | True |
HTTP_ACCEPT | '*/*' |
HTTP_ACCEPT_ENCODING | 'gzip, br' |
HTTP_CDN_LOOP | 'cloudflare' |
HTTP_DO_CONNECTING_IP | '35.172.193.238' |
HTTP_HOST | 'sippybee.com' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '35.172.193.238,172.71.190.16' |
HTTP_X_FORWARDED_PROTO | 'https' |
PATH_INFO | '/store/wines/sippybee-wine-tastings-cava-brut-reserva/' |
QUERY_STRING | '' |
RAW_URI | '/store/wines/sippybee-wine-tastings-cava-brut-reserva/' |
REMOTE_ADDR | '10.244.47.161' |
REMOTE_PORT | '42332' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | '0.0.0.0' |
SERVER_PORT | '8080' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'gunicorn/20.1.0' |
gunicorn.socket | <socket.socket fd=9, family=2, type=1, proto=0, laddr=('10.244.116.55', 8080), raddr=('10.244.47.161', 42332)> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7f31583201f0> |
wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
wsgi.input | <gunicorn.http.body.Body object at 0x7f31585ef5d0> |
wsgi.input_terminated | True |
wsgi.multiprocess | False |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
core.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['sippybee.com', 'winecopilot.com', '127.0.0.1', 'localhost'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'accounts.UserBase' |
AWS_ACCESS_KEY_ID | '********************' |
AWS_DEFAULT_ACL | 'public-read' |
AWS_S3_ENDPOINT_URL | 'https://nyc3.digitaloceanspaces.com' |
AWS_S3_OBJECT_PARAMETERS | {'CacheControl': 'max-age=86400'} |
AWS_SECRET_ACCESS_KEY | '********************' |
AWS_STORAGE_BUCKET_NAME | 'sippybee-images' |
BASE_DIR | PosixPath('/workspace') |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CORS_ALLOW_ALL_ORIGINS | True |
CORS_ALLOW_CREDENTIALS | True |
CORS_EXPOSE_HEADERS | ['Content-Type', 'X-CSRFToken'] |
CORS_ORIGIN_ALLOW_ALL | True |
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_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql_psycopg2', 'HOST': 'db-postgresql-nyc1-33808-do-user-12044255-0.c.db.ondigitalocean.com', 'NAME': 'defaultdb', 'OPTIONS': {'sslmode': 'require'}, 'PASSWORD': '********************', 'PORT': 25060, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'doadmin'}} |
DATABASE_ROUTERS | [] |
DATABASE_URL | 'postgresql://doadmin:AVNS_Y9UQ1DhoGYWZMiuNhJD@db-postgresql-nyc1-33808-do-user-12044255-0.c.db.ondigitalocean.com:25060/defaultdb?sslmode=require' |
DATA_UPLOAD_MAX_MEMORY_SIZE | 2621440 |
DATA_UPLOAD_MAX_NUMBER_FIELDS | 1000 |
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 | 'core.storage_backends.CustomS3Boto3Storage' |
DEFAULT_FROM_EMAIL | '[email protected]' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
EMAIL_BACKEND | 'sendgrid_backend.SendgridBackend' |
EMAIL_HOST | 'localhost' |
EMAIL_HOST_PASSWORD | '********************' |
EMAIL_HOST_USER | '' |
EMAIL_PORT | 25 |
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 | False |
EVENTS_SITE_URL | 'https://orca-app-nuwss.ondigitalocean.app' |
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 | 420 |
FILE_UPLOAD_TEMP_DIR | None |
FIRST_DAY_OF_WEEK | 0 |
FIXTURE_DIRS | [] |
FORCE_SCRIPT_NAME | None |
FORMAT_MODULE_PATH | None |
FORM_RENDERER | 'django.forms.renderers.DjangoTemplates' |
GOOGLE_MAPS_KEY | '********************' |
GOOGLE_MAP_ID | 'winecopilot-event-map' |
IGNORABLE_404_URLS | [] |
IMAGEKIT_CACHEFILE_DIR | 'CACHE/images' |
IMAGEKIT_CACHEFILE_NAMER | 'imagekit.cachefiles.namers.hash' |
IMAGEKIT_CACHE_BACKEND | 'default' |
IMAGEKIT_CACHE_PREFIX | 'imagekit:' |
IMAGEKIT_CACHE_TIMEOUT | 300 |
IMAGEKIT_DEFAULT_CACHEFILE_BACKEND | 'imagekit.cachefiles.backends.Simple' |
IMAGEKIT_DEFAULT_CACHEFILE_STRATEGY | 'imagekit.cachefiles.strategies.JustInTime' |
IMAGEKIT_DEFAULT_FILE_STORAGE | 'core.storage_backends.CustomS3Boto3Storage' |
IMAGEKIT_SPEC_CACHEFILE_NAMER | 'imagekit.cachefiles.namers.source_name_as_path' |
IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY | '********************' |
INSTALLED_APPS | ['captcha', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'django.contrib.sitemaps', 'rest_framework', 'rest_framework.authtoken', 'django_filters', 'corsheaders', 'phonenumber_field', 'apps.warehouse', 'apps.accounts', 'apps.api', 'apps.store', 'apps.cart', 'apps.orders', 'apps.tasting', 'apps.comments', 'apps.checkout', 'apps.admin_custom', 'apps.tasting_notes', 'apps.blog', 'apps.events', 'apps.pingme', 'apps.scrapping', 'storages', 'imagekit'] |
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'), ('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'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'fa', 'ur'] |
LANGUAGE_CODE | 'en-us' |
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 | '/account/' |
LOGIN_URL | '/account/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | '' |
MEDIA_URL | 'https://https://nyc3.digitaloceanspaces.com/media/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'corsheaders.middleware.CorsMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PREPEND_WWW | False |
PUBLIC_MEDIA_LOCATION | 'media' |
RECAPTCHA_PRIVATE_KEY | '********************' |
RECAPTCHA_PUBLIC_KEY | '********************' |
REST_FRAMEWORK | {'DEFAULT_AUTHENTICATION_CLASSES': ['rest_framework.authentication.TokenAuthentication']} |
ROOT_URLCONF | 'core.urls' |
SECRET_KEY | '********************' |
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 |
SENDGRID_API_KEY | '********************' |
SENDGRID_ECHO_TO_STDOUT | False |
SENDGRID_SANDBOX_MODE_IN_DEBUG | False |
SERVER_EMAIL | 'root@localhost' |
SESSION_CACHE_ALIAS | 'default' |
SESSION_COOKIE_AGE | 1209600 |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_HTTPONLY | False |
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 | 'core.settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | ['captcha.recaptcha_test_key_error'] |
SITE_ID | 1 |
STATICFILES_DIRS | ['/workspace/static'] |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/workspace/staticfiles' |
STATIC_URL | '/static/' |
STRIPE_PUBLISHABLE_KEY | '********************' |
STRIPE_SECRET_KEY | '********************' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': ['/workspace/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', 'core.context_processors.site', 'core.context_processors.recaptcha_public_key', 'core.context_processors.google_maps_key', 'apps.cart.context_processors.cart', 'apps.accounts.context_processors.account_menu', 'apps.accounts.context_processors.user_needs_age_verification', 'apps.admin_custom.context_processors.admin_menu']}}] |
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 | 'UTC' |
TWILIO_ACCOUNT_SID | 'ACf9deebb2ba3ac128c92a4da25828a472' |
TWILIO_AUTH_TOKEN | '********************' |
TWILIO_NUMBER | '+13527479463' |
USE_DEPRECATED_PYTZ | False |
USE_I18N | True |
USE_L10N | True |
USE_SPACES | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'core.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.