join() argument must be str or bytes, not 'NoneType'
Request Method: | GET |
---|---|
Request URL: | https://genavehmall.com/category/digital-goods/?page=1 |
Django Version: | 3.2 |
Exception Type: | TypeError |
Exception Value: | join() argument must be str or bytes, not 'NoneType' |
Exception Location: | /home2/gnvmalli/virtualenv/gnvmall/3.7/lib64/python3.7/genericpath.py, line 153, in _check_arg_types |
Python Executable: | /home2/gnvmalli/virtualenv/gnvmall/3.7/bin/python |
Python Version: | 3.7.16 |
Python Path: | ['', '/home2/gnvmalli/gnvmall', '/home2/gnvmalli/virtualenv/gnvmall/3.7/lib64/python37.zip', '/home2/gnvmalli/virtualenv/gnvmall/3.7/lib64/python3.7', '/home2/gnvmalli/virtualenv/gnvmall/3.7/lib64/python3.7/lib-dynload', '/opt/alt/python37/lib64/python3.7', '/opt/alt/python37/lib/python3.7', '/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages'] |
Server time: | Fri, 29 Mar 2024 02:49:01 +0430 |
In template /home2/gnvmalli/gnvmall/templates/partials/products.html
, error at line 70
60 | {% for product in products %} |
---|---|
61 | {% generateimage 'products:imagewebp' source=product.gallery_product.all.0.image as img %} |
62 | {% generateimage 'products:imagewebpmd' source=product.gallery_product.all.0.image as img_md %} |
63 | {% generateimage 'products:imagewebpsm' source=product.gallery_product.all.0.image as img_sm %} |
64 | <div class="product-item"> |
65 | <div class="product product_filter"> |
66 | <div class="product_image"> |
67 | <a href= "{% url 'products:product_details' product.attributegroup.category.slug product.slug %}"> |
68 | <picture> |
69 | <source media="(min-width: 900px)" |
70 | srcset="{{ img.url }}" |
71 | type="image/webp" > |
72 | <source media="(min-width: 601px)" |
73 | srcset="{{ img_md.url }}" |
74 | type="image/webp" > |
75 | <source media="(max-width: 600px)" |
76 | srcset="{{ img_sm.url }}" |
77 | type="image/webp" > |
78 | <img src="{{ product.gallery_product.all.0.image.url }}" type="image/jpeg" alt="{{ product.gallery_product.all.0.name }}"> |
79 | </picture> |
80 | </a> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/core/handlers/exception.py
, line 47, in inner
response = await sync_to_async(response_for_exception, thread_sensitive=False)(request, exc)
return response
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 | TypeError("join() argument must be str or bytes, not 'NoneType'") |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7fa54ab25610>> |
request | <WSGIRequest: GET '/category/digital-goods/?page=1'> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/core/handlers/base.py
, line 181, in _get_response
if response is None:
wrapped_callback = self.make_view_atomic(callback)
# If it is an asynchronous view, run it in a subthread.
if asyncio.iscoroutinefunction(wrapped_callback):
wrapped_callback = async_to_sync(wrapped_callback)
try:
response = wrapped_callback(request, *callback_args, **callback_kwargs)…
except Exception as e:
response = self.process_exception_by_middleware(e, request)
if response is None:
raise
# Complain if the view returned None (a common error).
Variable | Value |
---|---|
callback | <function products_list at 0x7fa547176440> |
callback_args | () |
callback_kwargs | {'slug': 'digital-goods'} |
middleware_method | <bound method InstagramMiddleware.process_view of <accounts.middleware.InstagramMiddleware object at 0x7fa54a941110>> |
request | <WSGIRequest: GET '/category/digital-goods/?page=1'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7fa54ab25610> |
wrapped_callback | <function products_list at 0x7fa547176440> |
/home2/gnvmalli/gnvmall/products/views.py
, line 451, in products_list
"page_obj" : products,
"color_list" : advance_data["colors"],
"brand_list" : advance_data["brands"],
"max_value" : advance_data["max_value"],
"kwargs" : advance_data["kwargs"],
"meta" : meta
})
return render(request, "categories.html", context)…
# Advance Products Filtering
def advance_filter_ajax(request):
advance_data = advance_filter(request)
attrgroup = AttributeGroup.objects.filter(category__name=advance_data["category"])
products = product_paginator(request, advance_data["products"], 12)
Variable | Value |
---|---|
_products | [<Product: آداپتور 67w اورجینال>, <Product: اسپیکرKTS_1236>, <Product: اسپیکرKTX_1526>, <Product: اسپیکرGTS_1248>, <Product: اسپیکرGTS_1565>, <Product: اسپیکرGTS_1523>, <Product: اسپیکرKTS_1600>, <Product: اسپیکرKTS_1275>, <Product: اسپیکرکولیر اس 31>, <Product: اسپیکرکولیر اس 817>, <Product: اسپیکرZQS_6212>, <Product: اسپیکرZQS_1440>, <Product: اسپیکرKTS_1297>, <Product: اسپیکرKTS_1265>, <Product: اسپیکرKTS_1266>, <Product: اسپیکرKTS_1581>, <Product: اسپیکرKTS_1048>, <Product: اسپیکرKTS_1296>, <Product: اسپیکرKTS_1299>, <Product: اسپیکرکولیر اس 818>, <Product: اسپیکرکولیر اس 813>, <Product: اسپیکرکولیر اس 218>, <Product: اسپیکرکولیر اس 158>, <Product: اسپیکرکولیر اس 159>, <Product: اسپیکرکولیر اس 816>, <Product: اسپیکرکولیر اس 819>, <Product: اسپیکرکولیر SU_H5>, <Product: اسپیکرکولیر اس 29>, <Product: اسپیکرکولیر اس 1000>, <Product: اسپیکرKTX_1222>, <Product: اسپیکرZQS_4247>, <Product: اسپیکرکولیر8012>, <Product: اسپیکرKTS_1579>, <Product: هدفون لنووHD300>, <Product: هدفون لنووHD200>, <Product: هندزفری بی سیم QCY T2C>, <Product: ساعت هوشمند مدل مودیو MW08>, <Product: ساعت هوشمند مدل هاینوتکو H44 PRO MAX>, <Product: ساعت هوشمند مدل هاینوتک RW_13>, <Product: ساعت هوشمند مدل BW7 NFC>, <Product: ساعت هوشمند مدل S7 PRO MAX>, <Product: هندزفری بی سیم MODIO ME12>, <Product: هندزفری بی سیم POP 2030 PRO>, <Product: هندزفری بی سیم لنووXT83 PRO>, <Product: هندزفری بی سیم لنووXT95 PRO>, <Product: هندزفری بی سیم لنووXT83>, <Product: هندزفری بی سیم لنووXT92>, <Product: هندزفری بی سیم AIRPODS2>, <Product: هندزفری بی سیم AIRPODS 3>, <Product: ساعت هوشمند مدل HW17>, <Product: ساعت هوشمند مدل HW67 PRO MAX>, <Product: ساعت هوشمند مدل HW16>, <Product: ساعت هوشمند مدل X7 MAX>, <Product: ساعت هوشمند HW67 PLUS>, <Product: ساعت هوشمند مدل CT8 Mini 41mm 7 series>, <Product: ساعت هوشمند مدل P67 MAX>, <Product: ساعت هوشمند مدل P7 MINI>, <Product: ساعت هوشمند مدل WS27>, <Product: ساعت هوشمند مدل MODIO MW07>, <Product: اسپیکرGTS_1569>, <Product: اسپیکرCH_8820>, <Product: اسپیکرQS_8601>, <Product: ساعت هوشمند مدل HW3 PRO>, <Product: ساعت هوشمند مدل x22 pro>, <Product: هندزفری بی سیم pop 2022 pro>, <Product: ساعت هوشمند مدل x22 pro max nfc 2022>, <Product: هندزفری بی سیم MODIO ME10 GAMING>, <Product: هندزفری بی سیم HAINO TEKO BD_33P47>, <Product: ساعت هوشمند مدل DT300 MINI>, <Product: هندزفری بی سیم HAINO TEKO BD_33PRO>, <Product: ساعت هوشمند مدل mw11>, <Product: هندزفری بی سیم LENOVO LP3 PRO>, <Product: ساعت هوشمند مدل N78 PLUS>, <Product: ساعت هوشمند مدل X32 PRO 2022>, <Product: اسپیکرKTS_1329>, <Product: اسپیکرTmw-2807>, <Product: اسپیکرZQS_4239>, <Product: اسپیکرktx_1300>, <Product: اسپیکرRX-6248>, <Product: اسپیکرچمدانی KTS-1163>, <Product: هندزفری بی سیم Pro 9>, <Product: ساعت هوشمند مدل GS7 Pro Max NFC 2022>, <Product: هندزفری بی سیم oraimo free pods 3>, <Product: ساعت هوشمند مدل 2022 HW7 MAX>, <Product: ساعت هوشمند مدل HW28 NFC 2022>, <Product: هندزفری بلوتوثی موناکو مدل Air 2 Monaco New Generation>, <Product: هندزفری بی سیم ایرپاد پروANC>, <Product: هندزفری بی سیم شیائومی مدل redmi AirDots>, <Product: ساعت هوشمند مدل M7 ProMax 2022 سری 7 مردانه و زنانه>, <Product: ساعت هوشمند مدل M7 Plus 2022 سری 7 مردانه و زنانه>, <Product: ساعت هوشمند مدل M7 Mini 2022 سری 7 مردانه و زنانه>, <Product: ساعت هوشمند مدل M7 Max 2022 سری 7 مردانه و زنانه>, <Product: ساعت هوشمند مدل M7 Pro 2022 سری 7 مردانه و زنانه>] |
advance_data | {'_attrgroup': None, 'baseAttrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'brands': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'category': None, 'colors': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'data': {}, 'kwargs': <QueryDict: {'page': ['1']}>, 'max_value': {'price__max': 5275000}, 'products': <QuerySet [<Product: آداپتور 67w اورجینال>, <Product: اسپیکرKTS_1236>, <Product: اسپیکرKTX_1526>, <Product: اسپیکرGTS_1248>, <Product: اسپیکرGTS_1565>, <Product: اسپیکرGTS_1523>, <Product: اسپیکرKTS_1600>, <Product: اسپیکرKTS_1275>, <Product: اسپیکرکولیر اس 31>, <Product: اسپیکرکولیر اس 817>, <Product: اسپیکرZQS_6212>, <Product: اسپیکرZQS_1440>, <Product: اسپیکرKTS_1297>, <Product: اسپیکرKTS_1265>, <Product: اسپیکرKTS_1266>, <Product: اسپیکرKTS_1581>, <Product: اسپیکرKTS_1048>, <Product: اسپیکرKTS_1296>, <Product: اسپیکرKTS_1299>, <Product: اسپیکرکولیر اس 818>, '...(remaining elements truncated)...']>} |
atg | None |
context | {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'kwargs': <QueryDict: {'page': ['1']}>, 'max_value': {'price__max': 5275000}, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_obj': <Page 1 of 8>, 'products': <Page 1 of 8>} |
page_title | <Category: کالای دیجیتال> |
products | <Page 1 of 8> |
request | <WSGIRequest: GET '/category/digital-goods/?page=1'> |
slug | 'digital-goods' |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/shortcuts.py
, line 19, in render
def render(request, template_name, context=None, content_type=None, status=None, using=None):
"""
Return a HttpResponse whose content is filled with the result of calling
django.template.loader.render_to_string() with the passed arguments.
"""
content = loader.render_to_string(template_name, context, request, using=using)…
return HttpResponse(content, content_type, status)
def redirect(to, *args, permanent=False, **kwargs):
"""
Return an HttpResponseRedirect to the appropriate URL for the arguments
Variable | Value |
---|---|
content_type | None |
context | {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'kwargs': <QueryDict: {'page': ['1']}>, 'max_value': {'price__max': 5275000}, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_obj': <Page 1 of 8>, 'products': <Page 1 of 8>} |
request | <WSGIRequest: GET '/category/digital-goods/?page=1'> |
status | None |
template_name | 'categories.html' |
using | None |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/loader.py
, line 62, in render_to_string
template_name may be a string or a list of strings.
"""
if isinstance(template_name, (list, tuple)):
template = select_template(template_name, using=using)
else:
template = get_template(template_name, using=using)
return template.render(context, request)…
def _engine_list(using=None):
return engines.all() if using is None else [engines[using]]
Variable | Value |
---|---|
context | {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'kwargs': <QueryDict: {'page': ['1']}>, 'max_value': {'price__max': 5275000}, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_obj': <Page 1 of 8>, 'products': <Page 1 of 8>} |
request | <WSGIRequest: GET '/category/digital-goods/?page=1'> |
template | <django.template.backends.django.Template object at 0x7fa5442a7850> |
template_name | 'categories.html' |
using | None |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/backends/django.py
, line 61, in render
@property
def origin(self):
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}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
request | <WSGIRequest: GET '/category/digital-goods/?page=1'> |
self | <django.template.backends.django.Template object at 0x7fa5442a7850> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 170, 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}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <django.template.base.Template object at 0x7fa544528f50> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/test/utils.py
, line 100, in instrumented_test_render
def instrumented_test_render(self, context):
"""
An instrumented Template render method, providing a signal that can be
intercepted by the test Client.
"""
template_rendered.send(sender=self, template=self, context=context)
return self.nodelist.render(context)…
class _TestState:
pass
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <django.template.base.Template object at 0x7fa544528f50> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 938, in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bits | [] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
node | <ExtendsNode: extends 'base.html'> |
self | [<ExtendsNode: extends 'base.html'>] |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 905, 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 and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <ExtendsNode: extends 'base.html'> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/loader_tags.py
, line 150, in render
compiled_parent.nodelist.get_nodes_by_type(BlockNode)}
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__(self, template, *args, extra_context=None, isolated_context=False, **kwargs):
Variable | Value |
---|---|
block_context | <django.template.loader_tags.BlockContext object at 0x7fa54425d4d0> |
blocks | {'content': <Block Node: content. Contents: [<TextNode: '\n '>]>, 'js': <Block Node: js. Contents: [<TextNode: '\n '>]>, 'links': <Block Node: links. Contents: [<TextNode: '\n '>]>, 'meta': <Block Node: meta. Contents: [<TextNode: '\n '>]>, 'style': <Block Node: style. Contents: []>} |
compiled_parent | <django.template.base.Template object at 0x7fa54426d950> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
node | <django.template.defaulttags.LoadNode object at 0x7fa544205110> |
self | <ExtendsNode: extends 'base.html'> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/test/utils.py
, line 100, in instrumented_test_render
def instrumented_test_render(self, context):
"""
An instrumented Template render method, providing a signal that can be
intercepted by the test Client.
"""
template_rendered.send(sender=self, template=self, context=context)
return self.nodelist.render(context)…
class _TestState:
pass
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <django.template.base.Template object at 0x7fa54426d950> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 938, in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | '\n\n<!DOCTYPE html>\n<html lang="fa-IR" ' |
bits | ['', '\n\n', '', '\n\n<!DOCTYPE html>\n<html lang="fa-IR" '] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
node | <Tag: render_block> |
self | [<django.template.defaulttags.LoadNode object at 0x7fa544205110>, <TextNode: '\n\n'>, <Tag: page_meta>, <TextNode: '\n\n<!DOCTYPE html>\n<html l'>, <Tag: render_block>] |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 905, 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 and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <Tag: render_block> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/classytags/core.py
, line 151, in render
"""
INTERNAL method to prepare rendering
Usually you should not override this method, but rather use render_tag.
"""
items = self.kwargs.items()
kwargs = dict([(key, value.resolve(context)) for key, value in items])
kwargs.update(self.blocks)
return self.render_tag(context, **kwargs)…
def render_tag(self, context, **kwargs):
"""
The method you should override in your custom tags
"""
raise NotImplementedError
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
items | dict_items([('name', <classytags.values.StringValue object at 0x7fa54426d050>), ('postprocessor', <TemplateConstant: None>)]) |
kwargs | {'name': 'html_extra', 'nodelist': [<TextNode: '>\n <head style="direct'>, <django.template.library.SimpleNode object at 0x7fa544205390>, <TextNode: '>\n \n '>, <django.template.loader_tags.IncludeNode object at 0x7fa5442056d0>, <TextNode: '\n '>, <django.template.loader_tags.IncludeNode object at 0x7fa544205fd0>, <TextNode: '\n '>, <Tag: render_block>], 'postprocessor': None} |
self | <Tag: render_block> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/sekizai/templatetags/sekizai_tags.py
, line 87, in render_tag
Argument('postprocessor', required=False, default=None, resolve=False),
parser_class=SekizaiParser,
)
def render_tag(self, context, name, postprocessor, nodelist):
if not validate_context(context):
return nodelist.render(context)
rendered_contents = nodelist.render(context)…
varname = get_varname()
data = '\n'.join(context[varname][name])
if postprocessor:
func = import_processor(postprocessor)
data = func(context, data, name)
return '%s\n%s' % (data, rendered_contents)
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
name | 'html_extra' |
nodelist | [<TextNode: '>\n <head style="direct'>, <django.template.library.SimpleNode object at 0x7fa544205390>, <TextNode: '>\n \n '>, <django.template.loader_tags.IncludeNode object at 0x7fa5442056d0>, <TextNode: '\n '>, <django.template.loader_tags.IncludeNode object at 0x7fa544205fd0>, <TextNode: '\n '>, <Tag: render_block>] |
postprocessor | None |
self | <Tag: render_block> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 938, in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | '\n ' |
bits | ['>\n <head style="direction:rtl; text-align:right" ', ' prefix="og: https://ogp.me/ns#"', '>\n \n ', '\n' '<meta name="description" content="هرآنچه از وسایل آشپزخانه، وسایل حمام و ' 'لوازم برقی و خانگی نیاز دارید میتوانید از گناوه مال و کاملا تضمینی ارسال ' 'رایگان تهیه کنید"><meta name="apple-mobile-web-app-status-bar-style" ' 'content="#400090"><meta name="msapplication-navbutton-color" ' 'content="#400090"><meta name="msapplication-TileImage" ' 'content="/static/e-commerce/images/گناوه مال لوگو.png"><meta ' 'name="msapplication-TileColor" content="#ffffff"><meta ' 'name="google-site-verification" ' 'content="3rj9Im_tlMf1RU5xzg73G5VFjegyJRgqkt842TJ-rfQ"><meta name="enamad" ' 'content="568949"><meta name="robots" content="index, follow"><meta ' 'name="viewport" content="width=device-width, initial-scale=1.0, ' 'shrink-to-fit=no"><meta name="fontiran.com:license" content="QTGS2"><meta ' 'name="theme-color" content="#400090"><meta name="referrer" ' 'content="unsafe-url"><meta name="framework" content="Redux 4.1.17"><meta ' 'name="twitter:site" content="genavehmall"><meta name="twitter:creator" ' 'content="گناوه مال"><meta http-equiv="content-type" content="text/html; ' 'charset=utf-8"><meta http-equiv="X-UA-Compatible" ' 'content="IE=edge,chrome=1"><meta property="og:phone_number" ' 'content="+989175946903"><meta property="og:latitude" ' 'content="29.57718887241278"><meta property="og:longitude" ' 'content="50.509632283459545"><meta property="og:street-address" ' 'content="خیابان ساحلی"><meta property="og:locality" content="بندر ' 'گناوه"><meta property="og:country-name" content="IRAN"><meta ' 'property="og:image" ' 'content="https://genavehmall.com/static/e-commerce/images/گناوه ' 'مال.png"><title>کالای دیجیتال|گناوه مال</title><meta property="og:title" ' 'content="کالای دیجیتال|گناوه مال"><meta property="og:url" ' 'content="https://genavehmall.com/category/digital-goods/?page=1"><meta ' 'property="og:description" content="هرآنچه از وسایل آشپزخانه، وسایل حمام و ' 'لوازم برقی و خانگی نیاز دارید میتوانید از گناوه مال و کاملا تضمینی ارسال ' 'رایگان تهیه کنید"><meta property="og:type" content="WebSite"><meta ' 'property="og:site_name" content="گناوه مال"><meta property="og:locale" ' 'content="fa_IR"><meta name="twitter:domain" ' 'content="www.genavehmall.com"><meta name="twitter:card" ' 'content="summary_large_image"><meta name="twitter:title" content="کالای ' 'دیجیتال|گناوه مال"><meta name="twitter:url" ' 'content="https://genavehmall.com/category/digital-goods/?page=1"><meta ' 'name="twitter:description" content="هرآنچه از وسایل آشپزخانه، وسایل حمام و ' 'لوازم برقی و خانگی نیاز دارید میتوانید از گناوه مال و کاملا تضمینی ارسال ' 'رایگان تهیه کنید"><meta itemprop="name" content="کالای دیجیتال|گناوه ' 'مال"><meta itemprop="url" ' 'content="https://genavehmall.com/category/digital-goods/?page=1"><meta ' 'itemprop="description" content="هرآنچه از وسایل آشپزخانه، وسایل حمام و لوازم ' 'برقی و خانگی نیاز دارید میتوانید از گناوه مال و کاملا تضمینی ارسال رایگان ' 'تهیه کنید">\n', '\n ', '\n\n', '\n '] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
node | <Tag: render_block> |
self | [<TextNode: '>\n <head style="direct'>, <django.template.library.SimpleNode object at 0x7fa544205390>, <TextNode: '>\n \n '>, <django.template.loader_tags.IncludeNode object at 0x7fa5442056d0>, <TextNode: '\n '>, <django.template.loader_tags.IncludeNode object at 0x7fa544205fd0>, <TextNode: '\n '>, <Tag: render_block>] |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 905, 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 and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <Tag: render_block> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/classytags/core.py
, line 151, in render
"""
INTERNAL method to prepare rendering
Usually you should not override this method, but rather use render_tag.
"""
items = self.kwargs.items()
kwargs = dict([(key, value.resolve(context)) for key, value in items])
kwargs.update(self.blocks)
return self.render_tag(context, **kwargs)…
def render_tag(self, context, **kwargs):
"""
The method you should override in your custom tags
"""
raise NotImplementedError
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
items | dict_items([('name', <classytags.values.StringValue object at 0x7fa544205c10>), ('postprocessor', <TemplateConstant: None>)]) |
kwargs | {'name': 'css', 'nodelist': [<TextNode: '\n '>, <Block Node: meta. Contents: [<TextNode: '\n '>]>, <TextNode: '\n <!--============'>, <django.templatetags.static.StaticNode object at 0x7fa544205190>, <TextNode: '" mask="">\n <!--=='>, <django.templatetags.static.StaticNode object at 0x7fa544205050>, <TextNode: '">\n <!--=========='>, <Variable Node: request.build_absolute_uri>, <TextNode: '">\n\t\t<!--================'>, <django.templatetags.static.StaticNode object at 0x7fa5442055d0>, <TextNode: '"/>\n\t\t<!--==============='>, <django.templatetags.static.StaticNode object at 0x7fa544205350>, <TextNode: '">\n\t\t<!--================'>, <django.templatetags.static.StaticNode object at 0x7fa544205d50>, <TextNode: '">\n\t\t<!--================'>, <django.templatetags.static.StaticNode object at 0x7fa544205150>, <TextNode: '" >\n '>, <Block Node: links. Contents: [<TextNode: '\n '>]>, <TextNode: "\n\t\t<link rel='stylesheet'">, <django.templatetags.static.StaticNode object at 0x7fa54420a110>, <TextNode: '" id="nikikala-css" media'>, <Block Node: style. Contents: []>, <TextNode: '\n </style>\n '>, <django.template.defaulttags.AutoEscapeControlNode object at 0x7fa54420ab50>, <TextNode: '\n \n '>, <Tag: cms_toolbar>], 'postprocessor': None} |
self | <Tag: render_block> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/sekizai/templatetags/sekizai_tags.py
, line 87, in render_tag
Argument('postprocessor', required=False, default=None, resolve=False),
parser_class=SekizaiParser,
)
def render_tag(self, context, name, postprocessor, nodelist):
if not validate_context(context):
return nodelist.render(context)
rendered_contents = nodelist.render(context)…
varname = get_varname()
data = '\n'.join(context[varname][name])
if postprocessor:
func = import_processor(postprocessor)
data = func(context, data, name)
return '%s\n%s' % (data, rendered_contents)
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
name | 'css' |
nodelist | [<TextNode: '\n '>, <Block Node: meta. Contents: [<TextNode: '\n '>]>, <TextNode: '\n <!--============'>, <django.templatetags.static.StaticNode object at 0x7fa544205190>, <TextNode: '" mask="">\n <!--=='>, <django.templatetags.static.StaticNode object at 0x7fa544205050>, <TextNode: '">\n <!--=========='>, <Variable Node: request.build_absolute_uri>, <TextNode: '">\n\t\t<!--================'>, <django.templatetags.static.StaticNode object at 0x7fa5442055d0>, <TextNode: '"/>\n\t\t<!--==============='>, <django.templatetags.static.StaticNode object at 0x7fa544205350>, <TextNode: '">\n\t\t<!--================'>, <django.templatetags.static.StaticNode object at 0x7fa544205d50>, <TextNode: '">\n\t\t<!--================'>, <django.templatetags.static.StaticNode object at 0x7fa544205150>, <TextNode: '" >\n '>, <Block Node: links. Contents: [<TextNode: '\n '>]>, <TextNode: "\n\t\t<link rel='stylesheet'">, <django.templatetags.static.StaticNode object at 0x7fa54420a110>, <TextNode: '" id="nikikala-css" media'>, <Block Node: style. Contents: []>, <TextNode: '\n </style>\n '>, <django.template.defaulttags.AutoEscapeControlNode object at 0x7fa54420ab50>, <TextNode: '\n \n '>, <Tag: cms_toolbar>] |
postprocessor | None |
self | <Tag: render_block> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 938, in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | '\n \n ' |
bits | ['\n ', '\n ', '\n' ' ' '<!--=============================================coza/==================================================-->\n' ' <link rel="icon" sizes="any" href="', '/static/e-commerce/images/gnvmall-logo.png', '" mask="">\n' ' ' '<!--=============================================coza/==================================================-->\n' ' <link rel="shortcut icon" href="', '/static/e-commerce/images/gnvmall.ico', '">\n' ' ' '<!--=============================================coza/==================================================-->\n' ' <link rel="canonical" href="', 'https://genavehmall.com/category/digital-goods/?page=1', '">\n' '\t\t' '<!--=============================================coza/==================================================-->\n' '\t\t<link rel="icon" type="image/png" href="', '/static/e-commerce/images/gnvmall.png', '"/>\n' '\t\t' '<!--=============================================coza/==================================================-->\n' ' \t\t<link rel="apple-touch-icon" sizes="76x76" href="', '/static/e-commerce/images/gnvmall-76x76.png', '">\n' '\t\t' '<!--=============================================coza/==================================================-->\n' '\t\t<link rel="stylesheet" type="text/css" href="', '/static/e-commerce/styles/bootstrap4/bootstrap6.css', '">\n' '\t\t' '<!--=============================================coza/==================================================-->\n' '\t\t<link rel="stylesheet" type="text/css" href="', '/static/e-commerce/plugins/font-awesome-4.7.0/css/font-awesome.min.css', '" >\n ', '\n' '\t\t<link rel="stylesheet" type="text/css" ' 'href="/static/e-commerce/plugins/jquery-ui-1.12.1.custom/jquery-ui.css">\n' '\t\t<link rel="stylesheet" type="text/css" ' 'href="/static/e-commerce/styles/categories_styles8.css">\n' '\t\t<link rel="stylesheet" type="text/css" ' 'href="/static/e-commerce/styles/categories_responsive2.css">\n' '\t\t<link rel="stylesheet" type="text/css" ' 'href="/static/e-commerce/styles/kendo.common.min.css" />\n' '\t\t<link rel="stylesheet" type="text/css" ' 'href="/static/e-commerce/styles/kendo.default.min.css" />\n' '\t\t<link rel="stylesheet" type="text/css" ' 'href="/static/e-commerce/styles/kendo.rtl.min.css" />\n' '\t\t<link rel="stylesheet" type="text/css" ' 'href="/static/e-commerce/styles/kendo.bootstrap-v4.min.css" />\n' '\t\t<link rel="stylesheet" type="text/css" ' 'href="/static/e-commerce/styles/kendo.default.mobile.min.css" />\n' '\t', '\n\t\t<link rel=\'stylesheet\' type="text/css" href="', '/static/e-commerce/styles/farsi.css', '" id="nikikala-css" media=\'all\' />\n' '\t\t' '<!--=============================================coza/==================================================-->\n' ' <style>\n' ' ', '\n' '\t\t.k-slider-horizontal {\n' '\t\tmax-width: 100%;\n' '\t\tbackground-color: #f1f1f1;\n' '\t\tpadding-right: 10%; \n' '\t\tpadding-left: 10%; \n' '\t\t}\n' '\t', '\n' ' </style>\n' ' <style>\n' ' body {\n' ' -webkit-touch-callout: none; /* Disable iOS copy/paste menu ' '*/\n' ' -webkit-user-select: none; /* Disable text selection */\n' ' -khtml-user-select: none;\n' ' -moz-user-select: none;\n' ' -ms-user-select: none;\n' ' user-select: none;\n' ' }\n' ' </style>\n' ' <!-- Global site tag (gtag.js) - Google Analytics -->\n' ' <script async ' 'src="https://www.googletagmanager.com/gtag/js?id=G-473HYJQGCJ"></script>\n' ' <script>\n' ' window.dataLayer = window.dataLayer || [];\n' ' function gtag(){dataLayer.push(arguments);}\n' " gtag('js', new Date());\n" ' \n' " gtag('config', 'G-473HYJQGCJ');\n" ' </script>\n' ' </head>\n' ' ', '\n' ' <body itemscope itemtype="http://schema.org/Website" class="loading" ' 'oncontextmenu="retur… <trimmed 4518 bytes string> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
node | <Tag: cms_toolbar> |
self | [<TextNode: '\n '>, <Block Node: meta. Contents: [<TextNode: '\n '>]>, <TextNode: '\n <!--============'>, <django.templatetags.static.StaticNode object at 0x7fa544205190>, <TextNode: '" mask="">\n <!--=='>, <django.templatetags.static.StaticNode object at 0x7fa544205050>, <TextNode: '">\n <!--=========='>, <Variable Node: request.build_absolute_uri>, <TextNode: '">\n\t\t<!--================'>, <django.templatetags.static.StaticNode object at 0x7fa5442055d0>, <TextNode: '"/>\n\t\t<!--==============='>, <django.templatetags.static.StaticNode object at 0x7fa544205350>, <TextNode: '">\n\t\t<!--================'>, <django.templatetags.static.StaticNode object at 0x7fa544205d50>, <TextNode: '">\n\t\t<!--================'>, <django.templatetags.static.StaticNode object at 0x7fa544205150>, <TextNode: '" >\n '>, <Block Node: links. Contents: [<TextNode: '\n '>]>, <TextNode: "\n\t\t<link rel='stylesheet'">, <django.templatetags.static.StaticNode object at 0x7fa54420a110>, <TextNode: '" id="nikikala-css" media'>, <Block Node: style. Contents: []>, <TextNode: '\n </style>\n '>, <django.template.defaulttags.AutoEscapeControlNode object at 0x7fa54420ab50>, <TextNode: '\n \n '>, <Tag: cms_toolbar>] |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 905, 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 and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <Tag: cms_toolbar> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/classytags/core.py
, line 151, in render
"""
INTERNAL method to prepare rendering
Usually you should not override this method, but rather use render_tag.
"""
items = self.kwargs.items()
kwargs = dict([(key, value.resolve(context)) for key, value in items])
kwargs.update(self.blocks)
return self.render_tag(context, **kwargs)…
def render_tag(self, context, **kwargs):
"""
The method you should override in your custom tags
"""
raise NotImplementedError
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
items | dict_items([('name', <TemplateConstant: None>)]) |
kwargs | {'name': None, 'nodelist': [<TextNode: '\n '>, <Block Node: content. Contents: [<TextNode: '\n '>]>, <TextNode: '\n '>, <django.template.defaulttags.CommentNode object at 0x7fa54420af90>, <TextNode: '\n <div id="search_'>, <django.template.loader_tags.IncludeNode object at 0x7fa54420a650>, <TextNode: '\n </div>\n <'>, <django.templatetags.static.StaticNode object at 0x7fa54420a4d0>, <TextNode: '"></script>-->\n\t\t<!--===='>, <django.templatetags.static.StaticNode object at 0x7fa54420aad0>, <TextNode: '"></script>\n\t\t<!--======='>, <django.templatetags.static.StaticNode object at 0x7fa54420a350>, <TextNode: '"></script>\n\t\t<!--======='>, <django.templatetags.static.StaticNode object at 0x7fa54420a190>, <TextNode: '"></script>\n\t\t<!--======='>, <Block Node: js. Contents: [<TextNode: '\n '>]>, <TextNode: '\n '>, <Tag: placeholder>, <TextNode: '\n '>, <Tag: render_block>]} |
self | <Tag: cms_toolbar> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/cms/templatetags/cms_tags.py
, line 433, in render_tag
return nodelist.render(context)
toolbar = get_toolbar_from_request(request)
if toolbar and toolbar.show_toolbar:
toolbar.init_toolbar(request)
return toolbar.render_with_structure(context, nodelist)
return nodelist.render(context)…
class CMSEditableObject(InclusionTag):
"""
Templatetag that links a content extracted from a generic django model
to the model admin changeform.
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
name | None |
nodelist | [<TextNode: '\n '>, <Block Node: content. Contents: [<TextNode: '\n '>]>, <TextNode: '\n '>, <django.template.defaulttags.CommentNode object at 0x7fa54420af90>, <TextNode: '\n <div id="search_'>, <django.template.loader_tags.IncludeNode object at 0x7fa54420a650>, <TextNode: '\n </div>\n <'>, <django.templatetags.static.StaticNode object at 0x7fa54420a4d0>, <TextNode: '"></script>-->\n\t\t<!--===='>, <django.templatetags.static.StaticNode object at 0x7fa54420aad0>, <TextNode: '"></script>\n\t\t<!--======='>, <django.templatetags.static.StaticNode object at 0x7fa54420a350>, <TextNode: '"></script>\n\t\t<!--======='>, <django.templatetags.static.StaticNode object at 0x7fa54420a190>, <TextNode: '"></script>\n\t\t<!--======='>, <Block Node: js. Contents: [<TextNode: '\n '>]>, <TextNode: '\n '>, <Tag: placeholder>, <TextNode: '\n '>, <Tag: render_block>] |
request | <WSGIRequest: GET '/category/digital-goods/?page=1'> |
self | <Tag: cms_toolbar> |
toolbar | <cms.toolbar.toolbar.CMSToolbar object at 0x7fa543f00250> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 938, in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | '\n ' |
bits | ['\n '] |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
node | <Block Node: content. Contents: [<TextNode: '\n '>]> |
self | [<TextNode: '\n '>, <Block Node: content. Contents: [<TextNode: '\n '>]>, <TextNode: '\n '>, <django.template.defaulttags.CommentNode object at 0x7fa54420af90>, <TextNode: '\n <div id="search_'>, <django.template.loader_tags.IncludeNode object at 0x7fa54420a650>, <TextNode: '\n </div>\n <'>, <django.templatetags.static.StaticNode object at 0x7fa54420a4d0>, <TextNode: '"></script>-->\n\t\t<!--===='>, <django.templatetags.static.StaticNode object at 0x7fa54420aad0>, <TextNode: '"></script>\n\t\t<!--======='>, <django.templatetags.static.StaticNode object at 0x7fa54420a350>, <TextNode: '"></script>\n\t\t<!--======='>, <django.templatetags.static.StaticNode object at 0x7fa54420a190>, <TextNode: '"></script>\n\t\t<!--======='>, <Block Node: js. Contents: [<TextNode: '\n '>]>, <TextNode: '\n '>, <Tag: placeholder>, <TextNode: '\n '>, <Tag: render_block>] |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 905, 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 and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <Block Node: content. Contents: [<TextNode: '\n '>]> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/loader_tags.py
, line 62, 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\t<div class="super_cont'>, <django.template.library.InclusionNode object at 0x7fa5444aa510>, <TextNode: '\n\n\t\t\t<div class="fs_menu_'>, <django.template.library.SimpleNode object at 0x7fa5444aac90>, <TextNode: '\n\t\t\t\t\t\t\t'>, <django.template.library.SimpleNode object at 0x7fa5444aac50>, <TextNode: '\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li '>, <django.template.defaulttags.URLNode object at 0x7fa5444aafd0>, <TextNode: '">فروشگاه گناوه مال</a></'>, <IfNode>, <TextNode: '\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</div'>, <django.template.loader_tags.IncludeNode object at 0x7fa5444aab50>, <TextNode: '\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div '>, <Variable Node: kwargs.color>, <TextNode: '\n\t\t\t\t\t\t\t<form id="advance'>, <django.template.defaulttags.URLNode object at 0x7fa54446c950>, <TextNode: '" method="GET">\n\t\t\t\t\t\t '>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t\t\t<input type="s'>, <IfNode>, <TextNode: '" name="price">\n\t\t\t\t\t\t\t\t'>, <IfNode>, <TextNode: '\n\t\t\t\t\t\t\t\t<input type="sea'>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t\t\t<input type="s'>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t\t\t<button id="ad'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252990>, <TextNode: '\n\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t</di'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252790>, <TextNode: '\n\t\t\t</div>\n\t\t\t\n\t\t\t<!-- Be'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252ad0>, <TextNode: '\n\n\t\t\t<!-- Newsletter -->\n'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252c10>, <TextNode: '\n </div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7fa544252dd0>, <TextNode: '\n\n\t\t</div>\n\t'>]> |
block_context | <django.template.loader_tags.BlockContext object at 0x7fa54425d4d0> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
push | <Block Node: content. Contents: [<TextNode: '\n\t\t<div class="super_cont'>, <django.template.library.InclusionNode object at 0x7fa5444aa510>, <TextNode: '\n\n\t\t\t<div class="fs_menu_'>, <django.template.library.SimpleNode object at 0x7fa5444aac90>, <TextNode: '\n\t\t\t\t\t\t\t'>, <django.template.library.SimpleNode object at 0x7fa5444aac50>, <TextNode: '\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li '>, <django.template.defaulttags.URLNode object at 0x7fa5444aafd0>, <TextNode: '">فروشگاه گناوه مال</a></'>, <IfNode>, <TextNode: '\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</div'>, <django.template.loader_tags.IncludeNode object at 0x7fa5444aab50>, <TextNode: '\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div '>, <Variable Node: kwargs.color>, <TextNode: '\n\t\t\t\t\t\t\t<form id="advance'>, <django.template.defaulttags.URLNode object at 0x7fa54446c950>, <TextNode: '" method="GET">\n\t\t\t\t\t\t '>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t\t\t<input type="s'>, <IfNode>, <TextNode: '" name="price">\n\t\t\t\t\t\t\t\t'>, <IfNode>, <TextNode: '\n\t\t\t\t\t\t\t\t<input type="sea'>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t\t\t<input type="s'>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t\t\t<button id="ad'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252990>, <TextNode: '\n\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t</di'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252790>, <TextNode: '\n\t\t\t</div>\n\t\t\t\n\t\t\t<!-- Be'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252ad0>, <TextNode: '\n\n\t\t\t<!-- Newsletter -->\n'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252c10>, <TextNode: '\n </div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7fa544252dd0>, <TextNode: '\n\n\t\t</div>\n\t'>]> |
self | <Block Node: content. Contents: [<TextNode: '\n '>]> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 938, in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | ('">\n' '\t\t\t\t\t\t\t\t<button id="advance_filter_stop" ' 'type="submit">submit</button>\n' '\t\t\t\t\t\t\t<form>\n' '\t\t\t\t\t\t</div>\n' '\n' '\t\t\t\t\t\t<!-- Main Content -->\n' '\n' '\t\t\t\t\t\t<div class="main_content">\n' '\n' '\t\t\t\t\t\t\t') |
bits | ['\n\t\t<div class="super_container">\n\n\t\t\t<!-- Header -->\n\n\t\t\t', '\t\t\t\n' '\t\t\t<header class="header trans_300">\n' '\t\t\t \n' '\n' '\t\t\t\t<!-- Top Navigation -->\n' '\n' '\t\t\t\t<div class="top_nav">\n' '\t\t\t\t\t<div class="container">\n' '\t\t\t\t\t\t<div class="row">\n' '\t\t\t\t\t\t\t<div class="col-md-6">\n' '\t\t\t\t\t\t\t\t<div class="top_nav_left">بازار رسمی اینترنتی ' 'بندرگناوه</div>\n' '\t\t\t\t\t\t\t</div>\n' '\t\t\t\t\t\t\t<div class="col-md-6 text-right" style="direction: rtl;">\n' '\t\t\t\t\t\t\t\t<div class="top_nav_right">\n' '\t\t\t\t\t\t\t\t\t<ul class="top_nav_menu">\n' '\n' '\t\t\t\t\t\t\t\t\t\t<!-- Currency / Language / My Account -->\n' '\n' '\t\t\t\t\t\t\t\t\t\t<li class="account">\n' '\t\t\t\t\t\t\t\t\t\t\t<a href = "#" onclick="return false;">\n' '\t\t\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t\t\t\tحساب کاربری\n' '\t\t\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t\t\t<i class="fa fa-angle-down"></i>\n' '\t\t\t\t\t\t\t\t\t\t\t</a>\n' '\t\t\t\t\t\t\t\t\t\t\t<ul class="account_selection">\n' '\t\t\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a href = "/accounts/login/"><i class="fa ' 'fa-sign-in" aria-hidden="true"></i>ورود</a></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a href = "/accounts/signup/"><i class="fa ' 'fa-user-plus" aria-hidden="true"></i>ثبت نام</a></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t\t</ul>\n' '\t\t\t\t\t\t\t\t\t\t</li>\n' '\t\t\t\t\t\t\t\t\t</ul>\n' '\t\t\t\t\t\t\t\t</div>\n' '\t\t\t\t\t\t\t</div>\n' '\t\t\t\t\t\t</div>\n' '\t\t\t\t\t</div>\n' '\t\t\t\t</div>\n' '\n' '\t\t\t\t<!-- Main Navigation -->\n' '\n' '\t\t\t\t<div class="main_nav_container">\n' '\t\t\t\t\t<div class="container">\n' '\t\t\t\t\t\t<div class="row">\n' '\t\t\t\t\t\t\t<div class="col-lg-12 text-right">\n' '\t\t\t\t\t\t\t\t<div class="logo_container">\n' '\t\t\t\t\t\t\t\t\t<a href="/">\n' '\t\t\t\t\t\t\t\t\t\t<img src="/static/e-commerce/images/gnvmall-logo.png" ' 'style="width: 45px;margin-bottom: 10px;margin-right: 10px;">\n' '\t\t\t\t\t\t\t\t\t</a>\n' '\t\t\t\t\t\t\t\t\t<a href="/">گناوه <span>مال </span></a>\n' '\t\t\t\t\t\t\t\t</div>\n' '\t\t\t\t\t\t\t\t<nav class="navbar">\n' '\t\t\t\t\t\t\t\t\t<ul class="navbar_menu">\n' '\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t<li><a href ="/contact-us/">ارتباط با ما</a></li>\n' '\t\t\t\t\t\t\t\t\t\t<li><a href = "#" onclick="return ' 'false;">تعهدات</a></li>\n' '\t\t\t\t\t\t\t\t\t\t<li class="language menu_item_list">\n' '\t\t\t\t\t\t\t\t\t\t\t<a href = "/category/">\n' '\t\t\t\t\t\t\t\t\t\t\t\tدسته بندی\n' '\t\t\t\t\t\t\t\t\t\t\t\t<i class="fa fa-angle-down"></i>\n' '\t\t\t\t\t\t\t\t\t\t\t</a>\n' '\t\t\t\t\t\t\t\t\t\t\t<ul class="language_selection" style="margin-top: ' '20px;">\n' '\t\t\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a href = "/category/Home-and-kitchen/" ' 'style="padding: 0px !important;">خانه و آشپزخانه</a></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a href = "/category/Fashion-and-beauty/" ' 'style="padding: 0px !important;">مد و زیبایی</a></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a href = "/category/digital-goods/" ' 'style="padding: 0px !important;">کالای دیجیتال</a></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a href = "/category/toys-and-entertainment/" ' 'style="padding: 0px !important;">اسباب بازی وسرگرمی</a></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a href = "/category/lamp/" style="padding: ' '0px !important;">لامپ</a></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\n' '\t\t\t\t\t\t\t\t\t\t\t</ul>\n' '\t\t\t\t\t\t\t\t\t\t</li>\n' '\t\t\t\t\t\t\t\t\t\t<li><a href ="/">گناوه مال</a></li>\n' '\t\t\t\t\t\t\t\t\t</ul>\n' '\t\t\t\t\t\t\t\t\t<ul class="navbar_user">\n' '\t\t\t\t\t\t\t\t\t\t<li><a href = "#"><i class="fa fa-search" ' 'aria-hidden="true"></i></a></li>\n' '\t\t\t\t\t\t\t\t\t\t<li><a href = "/accounts/"><i class="fa fa-user" ' 'aria-hidden="true"></i></a></li>\n' '\t\t\t\t\t\t\t\t\t\t<li cl… <trimmed 18025 bytes string> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
node | <django.template.loader_tags.IncludeNode object at 0x7fa544252990> |
self | [<TextNode: '\n\t\t<div class="super_cont'>, <django.template.library.InclusionNode object at 0x7fa5444aa510>, <TextNode: '\n\n\t\t\t<div class="fs_menu_'>, <django.template.library.SimpleNode object at 0x7fa5444aac90>, <TextNode: '\n\t\t\t\t\t\t\t'>, <django.template.library.SimpleNode object at 0x7fa5444aac50>, <TextNode: '\n\t\t\t\t\t\t\t<ul>\n\t\t\t\t\t\t\t\t<li '>, <django.template.defaulttags.URLNode object at 0x7fa5444aafd0>, <TextNode: '">فروشگاه گناوه مال</a></'>, <IfNode>, <TextNode: '\n\t\t\t\t\t\t\t</ul>\n\t\t\t\t\t\t</div'>, <django.template.loader_tags.IncludeNode object at 0x7fa5444aab50>, <TextNode: '\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div '>, <Variable Node: kwargs.color>, <TextNode: '\n\t\t\t\t\t\t\t<form id="advance'>, <django.template.defaulttags.URLNode object at 0x7fa54446c950>, <TextNode: '" method="GET">\n\t\t\t\t\t\t '>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t\t\t<input type="s'>, <IfNode>, <TextNode: '" name="price">\n\t\t\t\t\t\t\t\t'>, <IfNode>, <TextNode: '\n\t\t\t\t\t\t\t\t<input type="sea'>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t\t\t<input type="s'>, <IfNode>, <TextNode: '">\n\t\t\t\t\t\t\t\t<button id="ad'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252990>, <TextNode: '\n\n\t\t\t\t\t\t</div>\n\n\t\t\t\t\t</di'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252790>, <TextNode: '\n\t\t\t</div>\n\t\t\t\n\t\t\t<!-- Be'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252ad0>, <TextNode: '\n\n\t\t\t<!-- Newsletter -->\n'>, <django.template.loader_tags.IncludeNode object at 0x7fa544252c10>, <TextNode: '\n </div>\n '>, <django.template.loader_tags.IncludeNode object at 0x7fa544252dd0>, <TextNode: '\n\n\t\t</div>\n\t'>] |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 905, 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 and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <django.template.loader_tags.IncludeNode object at 0x7fa544252990> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/loader_tags.py
, line 195, in render
values = {
name: var.resolve(context)
for name, var in self.extra_context.items()
}
if self.isolated_context:
return template.render(context.new(values))
with context.push(**values):
return template.render(context)…
@register.tag('block')
def do_block(parser, token):
"""
Define a block that can be overridden by child templates.
Variable | Value |
---|---|
cache | {('partials/products.html',): <django.template.base.Template object at 0x7fa5441b3c90>} |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <django.template.loader_tags.IncludeNode object at 0x7fa544252990> |
template | <django.template.base.Template object at 0x7fa5441b3c90> |
template_name | ('partials/products.html',) |
values | {} |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 172, in render
"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
is True and an exception occurs during parsing, the exception is
annotated with contextual line information where it occurred in the
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <django.template.base.Template object at 0x7fa5441b3c90> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/test/utils.py
, line 100, in instrumented_test_render
def instrumented_test_render(self, context):
"""
An instrumented Template render method, providing a signal that can be
intercepted by the test Client.
"""
template_rendered.send(sender=self, template=self, context=context)
return self.nodelist.render(context)…
class _TestState:
pass
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <django.template.base.Template object at 0x7fa5441b3c90> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 938, in render
# extend_nodelist().
contains_nontext = False
def render(self, context):
bits = []
for node in self:
if isinstance(node, Node):
bit = node.render_annotated(context)…
else:
bit = node
bits.append(str(bit))
return mark_safe(''.join(bits))
def get_nodes_by_type(self, nodetype):
Variable | Value |
---|---|
bit | ('\n' ' \n' ' \t\t\t\t\t\t\t\t</div>\n' '\n' '\t\t\t\t\t\t\t\t\t\t<!-- Product Grid -->\n' '\n' '\t\t\t\t\t\t\t\t\t\t<div id="product-grid" >\n' '\n' '\t\t\t\t\t\t\t\t\t\t\t\t<!-- Product 1 -->\n' '\t\t\t\t\t\t\t\t\t\t\t\t<div class="product-grid">\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t') |
bits | ['', '\n' '\t\t\t\t\t\t\t<!-- Products -->\n' '\t\t\t\t\t\t\t<div class="products_iso">\n' '\t\t\t\t\t\t\t\t<div class="row">\n' '\t\t\t\t\t\t\t\t\t<div class="col">\n' '\n' '\t\t\t\t\t\t\t\t\t\t<!-- Product Sorting -->\n' '\n' '\t\t\t\t\t\t\t\t\t\t<div class="product_sorting_container ' 'product_sorting_container_top">\n' '\t\t\t\t\t\t\t\t\t\t\t<ul class="product_sorting">\n' '\t\t\t\t\t\t\t\t\t\t\t\t<li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="type_sorting_text">مرتب سازی</span>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<i class="fa fa-angle-down"></i>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<ul class="sorting_type">\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class="type_sorting_btn" ' 'data-isotope-option=\'{ "sortBy": "original-order" }\'><span>پیش ' 'فرض</span></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class="type_sorting_btn" ' 'data-isotope-option=\'{ "sortBy": "price" }\'><span>قیمت</span></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class="type_sorting_btn" ' 'data-isotope-option=\'{ "sortBy": "name" }\'><span>نام محصول</span></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\n' '\t\t\t\t\t\t\t\t\t\t\t\t</li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t<li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="fr">نمایش</span>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<span class="num_sorting_text">24</span>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<i class="fa fa-angle-down"></i>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t<ul class="sorting_num">\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li class="num_sorting_btn"><span>6</span></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li ' 'class="num_sorting_btn"><span>12</span></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li ' 'class="num_sorting_btn"><span>24</span></li>\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t</ul>\n' '\t\t\t\t\t\t\t\t\t\t\t\t</li>\n' '\t\t\t\t\t\t\t\t\t\t\t</ul>\n' '\n' ' \t\t\t\t\t\t\t\t\t', '\n' ' \t\t\t\t\t\t\t\t\t\t<div class="persianumber pages d-flex flex-row ' 'align-items-center">\n' ' \t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t<div class="page_current">\n' ' \t\t\t\t\t\t\t\t\t\t\t\t<span> 1 </span>\n' ' \t\t\t\t\t\t\t\t\t\t\t\t<ul class="page_selection">\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a ' 'href="/category/digital-goods/?page=1">1</a></li>\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a ' 'href="/category/digital-goods/?page=2">2</a></li>\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a ' 'href="/category/digital-goods/?page=3">3</a></li>\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a ' 'href="/category/digital-goods/?page=4">4</a></li>\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a ' 'href="/category/digital-goods/?page=5">5</a></li>\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a ' 'href="/category/digital-goods/?page=6">6</a></li>\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a ' 'href="/category/digital-goods/?page=7">7</a></li>\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<li><a ' 'href="/category/digital-goods/?page=8">8</a></li>\n' ' \t\t\t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t\t</ul>\n' ' \t\t\t\t\t\t\t\t\t\t\t</div>\n' ' \t\t\t\t\t\t\t\t\t\t\t<div class="page_total"><span>از</span><a ' 'style="color:inherit;"href="/category/digital-goods/?page=8">8</a></div>\n' ' \t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t\t\t<div id="next_page" class="page_next"><a ' 'href="/category/digital-goods/?page=2"><i class="fa fa-long-arrow-left" ' 'aria-hidden="true"></i></a></div>\n' ' \t\t\t\t\t\t\t\t\t\t\t\n' ' \t\t\t\t\t\t\t\t\t\t</div>\n' ' \t\t\t\t\t\t\t\t\t', '\n' ' \n' ' \t\t\t\t\t\t\t\t</div>\n' '\n' '\t\t\t\t\t\t\t\t\t\t<!-- Product Grid -->\n' '\n' '\t\t\t\t\t\t\t\t\t\t<div id="product-grid" >\n' '\n' '\t\t\t\t\t\t\t\t\t\t\t\t… <trimmed 4204 bytes string> |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
node | <ForNode: for product in products, tail_len: 31> |
self | [<django.template.defaulttags.LoadNode object at 0x7fa544003910>, <TextNode: '\n\t\t\t\t\t\t\t<!-- Products -->'>, <IfNode>, <TextNode: '\n \n \t\t\t\t\t\t\t'>, <ForNode: for product in products, tail_len: 31>, <TextNode: '\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t'>, <Variable Node: page_obj.start_index>, <TextNode: '-'>, <Variable Node: page_obj.end_index>, <TextNode: ' از '>, <Variable Node: page_obj.paginator.count>, <TextNode: ' مورد</span>\n\t\t\t\t\t\t\t\t\t'>, <IfNode>, <TextNode: '\n\n\t\t\t\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t'>] |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 905, 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 and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <ForNode: for product in products, tail_len: 31> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/defaulttags.py
, line 211, 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}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
i | 0 |
item | <Product: آداپتور 67w اورجینال> |
len_values | 12 |
loop_dict | {'counter': 1, 'counter0': 0, 'first': True, 'last': False, 'parentloop': {}, 'revcounter': 12, 'revcounter0': 11} |
node | <Variable Node: img.url> |
nodelist | ['\n \t\t\t\t\t\t\t\t\t\t\t ', '', '\n \t\t\t\t\t\t\t\t\t\t\t ', '', '\n \t\t\t\t\t\t\t\t\t\t\t ', '', '\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="product-item">\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="product product_filter">\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<div class="product_image">\n' '\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t<a href= "', '/category/digital-goods/adapter-67w/', '">\n' ' \t\t\t\t\t\t\t\t\t\t\t <picture>\n' ' \t\t\t\t\t\t\t\t\t\t\t <source ' 'media="(min-width: 900px)" \n' ' ' 'srcset="'] |
num_loopvars | 1 |
parentloop | {} |
pop_context | False |
self | <ForNode: for product in products, tail_len: 31> |
unpack | False |
values | <Page 1 of 8> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 905, 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 and not hasattr(e, 'template_debug'):
e.template_debug = context.render_context.template.get_exception_info(e, self.token)
raise
def __iter__(self):
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <Variable Node: img.url> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 988, in render
self.filter_expression = filter_expression
def __repr__(self):
return "<Variable Node: %s>" % self.filter_expression
def render(self, context):
try:
output = self.filter_expression.resolve(context)…
except UnicodeDecodeError:
# Unicode conversion can fail sometimes for reasons out of our
# control (e.g. exception rendering). In that case, we fail
# quietly.
return ''
return render_value_in_context(output, context)
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <Variable Node: img.url> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 671, in resolve
self.filters = filters
self.var = var_obj
def resolve(self, context, ignore_failures=False):
if isinstance(self.var, Variable):
try:
obj = self.var.resolve(context)…
except VariableDoesNotExist:
if ignore_failures:
obj = None
else:
string_if_invalid = context.template.engine.string_if_invalid
if string_if_invalid:
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
ignore_failures | False |
self | <django.template.base.FilterExpression object at 0x7fa544424950> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 796, in resolve
var)
self.lookups = tuple(var.split(VARIABLE_ATTRIBUTE_SEPARATOR))
def resolve(self, context):
"""Resolve this variable against a given context."""
if self.lookups is not None:
# We're dealing with a variable that needs to be resolved
value = self._resolve_lookup(context)…
else:
# We're dealing with a literal, so it's already been "resolved"
value = self.literal
if self.translate:
is_safe = isinstance(value, SafeData)
msgid = value.replace('%', '%%')
Variable | Value |
---|---|
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
self | <Variable: 'img.url'> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/template/base.py
, line 837, in _resolve_lookup
# ValueError/IndexError are for numpy.array lookup on
# numpy < 1.9 and 1.9+ respectively
except (TypeError, AttributeError, KeyError, ValueError, IndexError):
try: # attribute lookup
# Don't return class attributes if the class is the context:
if isinstance(current, BaseContext) and getattr(type(current), bit):
raise AttributeError
current = getattr(current, bit)…
except (TypeError, AttributeError):
# Reraise if the exception was raised by a @property
if not isinstance(current, BaseContext) and bit in dir(current):
raise
try: # list-index lookup
current = current[int(bit)]
Variable | Value |
---|---|
bit | 'url' |
context | [{'True': True, 'False': False, 'None': None}, {}, {}, {'attrgroup': <QuerySet [<AttributeGroup: ساعت و مچ بند هوشمند>, <AttributeGroup: هندزفری>, <AttributeGroup: اسپیکر>, <AttributeGroup: رینگ لایت>, <AttributeGroup: هدفون>, <AttributeGroup: آداپتور>]>, 'products': <Page 1 of 8>, 'page_obj': <Page 1 of 8>, 'color_list': <QuerySet [<Color: قرمز>, <Color: آبی>, <Color: سرمه ایی>, <Color: خاکستری>, <Color: مشکی>, <Color: طلایی>, <Color: نقره ای>, <Color: سبز لجنی>, <Color: صورتی>, <Color: سفید>, <Color: نارنجی>, <Color: قهوه ایی سوخته>, <Color: رز گلد>, <Color: طوسی>, <Color: سبز>, <Color: زرد>, <Color: بنفش>]>, 'brand_list': <QuerySet [<Brand: متفرقه(etc)>, <Brand: مودیو>, <Brand: شیائومی(Xiaomi)>, <Brand: هاینوتکو>, <Brand: اپل های کپی>, <Brand: لنوو>, <Brand: کیو سی وای>, <Brand: کیمیسو>, <Brand: کولیر>, <Brand: کی تی ایکس>, <Brand: کی تی اس>, <Brand: زد کیو اس>, <Brand: جی تی اس>]>, 'max_value': {'price__max': 5275000}, 'kwargs': <QueryDict: {'page': ['1']}>, 'meta': <meta.views.Meta object at 0x7fa54734b110>, 'page_meta': None}] |
current | <ImageCacheFile: None> |
self | <Variable: 'img.url'> |
template_name | 'categories.html' |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/cachefiles/__init__.py
, line 85, in url
@property
def path(self):
return self._storage_attr('path')
@property
def url(self):
return self._storage_attr('url')…
def generate(self, force=False):
"""
Generate the file. If ``force`` is ``True``, the file will be generated
whether the file already exists or not.
Variable | Value |
---|---|
self | <ImageCacheFile: None> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/cachefiles/__init__.py
, line 75, in _storage_attr
# require the file to exist; they do not need its contents to work. This
# distinction gives the user the flexibility to create a cache file
# strategy that assumes the existence of a file, but can still make the file
# available when its contents are required.
def _storage_attr(self, attr):
if getattr(self, '_file', None) is None:
existence_required.send(sender=self, file=self)…
fn = getattr(self.storage, attr)
return fn(self.name)
@property
def path(self):
return self._storage_attr('path')
Variable | Value |
---|---|
attr | 'url' |
self | <ImageCacheFile: None> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/dispatch/dispatcher.py
, line 182, in send
Return a list of tuple pairs [(receiver, response), ... ].
"""
if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS:
return []
return [
(receiver, receiver(signal=self, sender=sender, **named))
for receiver in self._live_receivers(sender)…
]
def send_robust(self, sender, **named):
"""
Send signal from sender to all connected receivers catching errors.
Variable | Value |
---|---|
named | {'file': <ImageCacheFile: None>} |
self | <django.dispatch.dispatcher.Signal object at 0x7fa550cde750> |
sender | <ImageCacheFile: None> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/dispatch/dispatcher.py
, line 182, in <listcomp>
Return a list of tuple pairs [(receiver, response), ... ].
"""
if not self.receivers or self.sender_receivers_cache.get(sender) is NO_RECEIVERS:
return []
return [
(receiver, receiver(signal=self, sender=sender, **named))
for receiver in self._live_receivers(sender)…
]
def send_robust(self, sender, **named):
"""
Send signal from sender to all connected receivers catching errors.
Variable | Value |
---|---|
.0 | <list_iterator object at 0x7fa544003590> |
named | {'file': <ImageCacheFile: None>} |
receiver | <bound method GeneratorRegistry.existence_required_receiver of <imagekit.registry.GeneratorRegistry object at 0x7fa550cb4a10>> |
self | <django.dispatch.dispatcher.Signal object at 0x7fa550cde750> |
sender | <ImageCacheFile: None> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/registry.py
, line 53, in existence_required_receiver
autodiscover()
return self._generators.keys()
def content_required_receiver(self, sender, file, **kwargs):
self._receive(file, 'on_content_required')
def existence_required_receiver(self, sender, file, **kwargs):
self._receive(file, 'on_existence_required')…
def _receive(self, file, callback):
generator = file.generator
# FIXME: I guess this means you can't register functions?
if generator.__class__ in self._generators.values():
Variable | Value |
---|---|
file | <ImageCacheFile: None> |
kwargs | {'signal': <django.dispatch.dispatcher.Signal object at 0x7fa550cde750>} |
self | <imagekit.registry.GeneratorRegistry object at 0x7fa550cb4a10> |
sender | <ImageCacheFile: None> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/registry.py
, line 61, in _receive
def _receive(self, file, callback):
generator = file.generator
# FIXME: I guess this means you can't register functions?
if generator.__class__ in self._generators.values():
# Only invoke the strategy method for registered generators.
call_strategy_method(file, callback)…
class SourceGroupRegistry(object):
"""
The source group registry is responsible for listening to source_* signals
on source groups, and relaying them to the image generated file strategies
Variable | Value |
---|---|
callback | 'on_existence_required' |
file | <ImageCacheFile: None> |
generator | <products.templatetags.customtags.ImageWebp object at 0x7fa5446d8390> |
self | <imagekit.registry.GeneratorRegistry object at 0x7fa550cb4a10> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/utils.py
, line 166, in call_strategy_method
return f
def call_strategy_method(file, method_name):
strategy = getattr(file, 'cachefile_strategy', None)
fn = getattr(strategy, method_name, None)
if fn is not None:
fn(file)…
def get_cache():
try:
from django.core.cache import caches
except ImportError:
Variable | Value |
---|---|
file | <ImageCacheFile: None> |
fn | <bound method JustInTime.on_existence_required of <imagekit.cachefiles.strategies.JustInTime object at 0x7fa543ef8090>> |
method_name | 'on_existence_required' |
strategy | <imagekit.cachefiles.strategies.JustInTime object at 0x7fa543ef8090> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/cachefiles/strategies.py
, line 15, in on_existence_required
class JustInTime(object):
"""
A strategy that ensures the file exists right before it's needed.
"""
def on_existence_required(self, file):
file.generate()…
def on_content_required(self, file):
file.generate()
class Optimistic(object):
Variable | Value |
---|---|
file | <ImageCacheFile: None> |
self | <imagekit.cachefiles.strategies.JustInTime object at 0x7fa543ef8090> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/cachefiles/__init__.py
, line 94, in generate
def generate(self, force=False):
"""
Generate the file. If ``force`` is ``True``, the file will be generated
whether the file already exists or not.
"""
if force or getattr(self, '_file', None) is None:
self.cachefile_backend.generate(self, force)…
def _generate(self):
# Generate the file
content = generate(self.generator)
actual_name = self.storage.save(self.name, content)
Variable | Value |
---|---|
force | False |
self | <ImageCacheFile: None> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/cachefiles/backends.py
, line 109, in generate
"""
The most basic file backend. The storage is consulted to see if the file
exists. Files are generated synchronously.
"""
def generate(self, file, force=False):
self.generate_now(file, force=force)…
def _exists(self, file):
return bool(getattr(file, '_file', None)
or file.storage.exists(file.name))
Variable | Value |
---|---|
file | <ImageCacheFile: None> |
force | False |
self | <imagekit.cachefiles.backends.Simple object at 0x7fa5440544d0> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/cachefiles/backends.py
, line 94, in generate_now
def exists(self, file):
return self.get_state(file) == CacheFileState.EXISTS
def generate(self, file, force=False):
raise NotImplementedError
def generate_now(self, file, force=False):
if force or self.get_state(file) not in (CacheFileState.GENERATING, CacheFileState.EXISTS):…
self.set_state(file, CacheFileState.GENERATING)
file._generate()
self.set_state(file, CacheFileState.EXISTS)
file.close()
Variable | Value |
---|---|
file | <ImageCacheFile: None> |
force | False |
self | <imagekit.cachefiles.backends.Simple object at 0x7fa5440544d0> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/cachefiles/backends.py
, line 68, in get_state
return sanitize_cache_key('%s%s-state' %
(settings.IMAGEKIT_CACHE_PREFIX, file.name))
def get_state(self, file, check_if_unknown=True):
key = self.get_key(file)
state = self.cache.get(key)
if state is None and check_if_unknown:
exists = self._exists(file)…
state = CacheFileState.EXISTS if exists else CacheFileState.DOES_NOT_EXIST
self.set_state(file, state)
return state
def set_state(self, file, state):
key = self.get_key(file)
Variable | Value |
---|---|
check_if_unknown | True |
file | <ImageCacheFile: None> |
key | 'imagekit:None-state' |
self | <imagekit.cachefiles.backends.Simple object at 0x7fa5440544d0> |
state | None |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/imagekit/cachefiles/backends.py
, line 113, in _exists
"""
def generate(self, file, force=False):
self.generate_now(file, force=force)
def _exists(self, file):
return bool(getattr(file, '_file', None)
or file.storage.exists(file.name))…
def _generate_file(backend, file, force=False):
backend.generate_now(file, force=force)
Variable | Value |
---|---|
file | <ImageCacheFile: None> |
self | <imagekit.cachefiles.backends.Simple object at 0x7fa5440544d0> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/core/files/storage.py
, line 311, in exists
os.remove(name)
except FileNotFoundError:
# FileNotFoundError is raised if the file or directory was removed
# concurrently.
pass
def exists(self, name):
return os.path.exists(self.path(name))…
def listdir(self, path):
path = self.path(path)
directories, files = [], []
for entry in os.scandir(path):
if entry.is_dir():
Variable | Value |
---|---|
name | None |
self | <django.core.files.storage.FileSystemStorage object at 0x7fa543ef8290> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/core/files/storage.py
, line 324, in path
if entry.is_dir():
directories.append(entry.name)
else:
files.append(entry.name)
return directories, files
def path(self, name):
return safe_join(self.location, name)…
def size(self, name):
return os.path.getsize(self.path(name))
def url(self, name):
if self.base_url is None:
Variable | Value |
---|---|
name | None |
self | <django.core.files.storage.FileSystemStorage object at 0x7fa543ef8290> |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib/python3.7/site-packages/django/utils/_os.py
, line 17, in safe_join
"""
Join one or more path components to the base path component intelligently.
Return a normalized, absolute version of the final path.
Raise ValueError if the final path isn't located inside of the base path
component.
"""
final_path = abspath(join(base, *paths))…
base_path = abspath(base)
# Ensure final_path starts with base_path (using normcase to ensure we
# don't false-negative on case insensitive operating systems like Windows),
# further, one of the following conditions must be true:
# a) The next character is the path separator (to prevent conditions like
# safe_join("/dir", "/../d"))
Variable | Value |
---|---|
base | '/home2/gnvmalli/public_html/media' |
paths | (None,) |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib64/python3.7/posixpath.py
, line 94, in join
if b.startswith(sep):
path = b
elif not path or path.endswith(sep):
path += b
else:
path += sep + b
except (TypeError, AttributeError, BytesWarning):
genericpath._check_arg_types('join', a, *p)…
raise
return path
# Split a path in head (everything up to the last '/') and tail (the
# rest). If the path ends in '/', tail will be empty. If there is no
Variable | Value |
---|---|
a | '/home2/gnvmalli/public_html/media' |
p | (None,) |
path | '/home2/gnvmalli/public_html/media' |
sep | '/' |
/home2/gnvmalli/virtualenv/gnvmall/3.7/lib64/python3.7/genericpath.py
, line 153, in _check_arg_types
for s in args:
if isinstance(s, str):
hasstr = True
elif isinstance(s, bytes):
hasbytes = True
else:
raise TypeError('%s() argument must be str or bytes, not %r' %
(funcname, s.__class__.__name__)) from None…
if hasstr and hasbytes:
raise TypeError("Can't mix strings and bytes in path components") from None
Variable | Value |
---|---|
args | ('/home2/gnvmalli/public_html/media', None) |
funcname | 'join' |
hasbytes | False |
hasstr | True |
s | None |
AnonymousUser
Variable | Value |
---|---|
page | '1' |
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTPS | 'on' |
HTTP_ACCEPT | '*/*' |
HTTP_ACCEPT_ENCODING | 'gzip, br' |
HTTP_CDN_LOOP | 'cloudflare' |
HTTP_CF_CONNECTING_IP | '3.235.249.219' |
HTTP_CF_IPCOUNTRY | 'US' |
HTTP_CF_RAY | '86bb57b7e97f2078-IAD' |
HTTP_CF_VISITOR | '{"scheme":"https"}' |
HTTP_CONNECTION | 'Keep-Alive' |
HTTP_HOST | 'genavehmall.com' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '3.235.249.219' |
HTTP_X_FORWARDED_PROTO | 'https' |
PATH_INFO | '/category/digital-goods/' |
PROXY_REMOTE_ADDR | '172.71.223.64' |
QUERY_STRING | 'page=1' |
REMOTE_ADDR | '3.235.249.219' |
REMOTE_PORT | '31922' |
REQUEST_METHOD | 'GET' |
REQUEST_SCHEME | 'https' |
REQUEST_URI | '/category/digital-goods/?page=1' |
SCRIPT_NAME | '' |
SCRIPT_URI | 'https://genavehmall.com/category/digital-goods/' |
SCRIPT_URL | '/category/digital-goods/' |
SERVER_ADDR | '88.99.137.77' |
SERVER_ADMIN | '[email protected]' |
SERVER_NAME | 'genavehmall.com' |
SERVER_PORT | '443' |
SERVER_PROTOCOL | 'HTTP/1.1' |
SERVER_SOFTWARE | 'LiteSpeed' |
X-LSCACHE | 'on' |
_shell | 'python' |
_source | 'source' |
wsgi.errors | <_io.TextIOWrapper name='<stderr>' mode='w' encoding='utf-8'> |
wsgi.file_wrapper | <class 'lsapi_wsgi.FileWrapper'> |
wsgi.input | <lsapi_wsgi.InputStream object at 0x7fa543ddc030> |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'https' |
wsgi.version | (1, 0) |
gnvmall.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['88.99.137.77', 'www.gnvmall.ir', 'gnvmall.ir', 'mail.gnvmall.ir', 'www.mail.gnvmall.ir', 'www.genavehmall.com', 'genavehmall.com', 'mail.genavehmall.com', 'www.genavehmall.com'] |
ALLOW_UNICODE_SLUGS | True |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'accounts.User' |
BASE_DIR | PosixPath('/home2/gnvmalli/gnvmall') |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CART_SESSION_ID | 'cart' |
CMS_TEMPLATES | (('cms.html', 'قالب مادر'),) |
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 | ['88.99.137.77', 'www.gnvmall.ir', 'gnvmall.ir', 'mail.gnvmall.ir', 'www.mail.gnvmall.ir', 'www.genavehmall.com', 'genavehmall.com', 'mail.genavehmall.com', 'www.genavehmall.com'] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.mysql', 'HOST': 'localhost', 'NAME': 'gnvmalli_final_db', 'OPTIONS': {'charset': 'utf8mb4', 'init_command': 'SET storage_engine=INNODB;', 'sql_mode': 'traditional'}, 'PASSWORD': '********************', 'PORT': 3306, 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'gnvmalli_final_db'}} |
DATABASE_ROUTERS | [] |
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.AutoField' |
DEFAULT_CHARSET | 'utf-8' |
DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'django.core.files.storage.FileSystemStorage' |
DEFAULT_FROM_EMAIL | 'webmaster@localhost' |
DEFAULT_HASHING_ALGORITHM | 'sha256' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
DJANGO_CHECK_SEO_AUTH | {'pass': '********************', 'user': None} |
EMAIL_BACKEND | 'django.core.mail.backends.smtp.EmailBackend' |
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 |
FILER_IMAGE_MODEL | 'filer.Image' |
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' |
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 | 'django.core.files.storage.FileSystemStorage' |
IMAGEKIT_SPEC_CACHEFILE_NAMER | 'imagekit.cachefiles.namers.source_name_as_path' |
IMAGEKIT_USE_MEMCACHED_SAFE_CACHE_KEY | '********************' |
INSTALLED_APPS | ['djangocms_admin_style', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sites', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.sitemaps', 'django.contrib.redirects', 'block_ip', 'django_jalali', 'jalali_date', 'rangefilter', 'rangefilter2', 'widget_tweaks', 'debug_toolbar', 'products.apps.ProductsConfig', 'accounts.apps.AccountsConfig', 'cart.apps.CartConfig', 'gnv_scrapy.apps.GnvScrapyConfig', 'background_task', 'imagekit', 'meta', 'imagesitemaps', 'treebeard', 'menus', 'sekizai', 'cms', 'djangocms_text_ckeditor', 'django_check_seo', 'djangocms_flash', 'djangocms_googlemap', 'djangocms_link', 'djangocms_inherit', 'djangocms_file', 'djangocms_picture', 'djangocms_teaser', 'djangocms_video', 'djangocms_snippet', 'djangocms_page_meta', 'reversion', 'aldryn_apphooks_config', 'aldryn_categories', 'aldryn_common', 'aldryn_newsblog', 'aldryn_people', 'parler', 'sortedm2m', 'taggit', 'easy_thumbnails', 'filer', 'mptt', 'django_tgbot', 'mamali_channel_assist_bot'] |
INTERNAL_IPS | {'127.0.0.1'} |
JALALI_DATE_DEFAULTS | {'Static': {'css': {'all': ['admin/jquery.ui.datepicker.jalali/themes/base/jquery-ui.min.css']}, 'js': []}, 'Strftime': {'date': '%y/%m/%d', 'datetime': '%H:%M:%S %y/%m/%d'}} |
KAVENEGAR_API | '********************' |
LANGUAGES | [('fa-ir', 'fa-ir')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'fa', 'ur'] |
LANGUAGE_CODE | 'fa-ir' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_HTTPONLY | False |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LANGUAGE_COOKIE_SAMESITE | None |
LANGUAGE_COOKIE_SECURE | False |
LOCALE_PATHS | [] |
LOGGING | {} |
LOGGING_CONFIG | 'logging.config.dictConfig' |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_UR | '/accounts/dashboard/' |
LOGIN_URL | '/accounts/login/' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MAX_ATTEMPTS | 5 |
MAX_RUN_TIME | 120 |
MEDIA_ROOT | PosixPath('/home2/gnvmalli/public_html/media') |
MEDIA_URL | '/media/' |
MERCHANT_ID | '56613efd-7b79-4c1d-8bcf-40ef46a1cc21' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MESSAGE_TAGS | {10: 'alert-info', 20: 'alert-info', 25: 'alert-success', 30: 'alert-warning', 40: 'alert-danger'} |
META_FB_TYPE | 'Website' |
META_IMAGE_URL | 'https://genavehmall.com/static/e-commerce/images/gnvmall-logo.png' |
META_SCHEMAORG_TYPE | 'Website' |
META_SITE_DOMAIN | 'www.genavehmall.com' |
META_SITE_NAME | 'گناوه مال' |
META_SITE_PROTOCOL | 'https' |
META_SITE_TYPE | 'Website' |
META_TWITTER_AUTHOR | 'Mohammad Rostami' |
META_TWITTER_SITE | 'genavehmall' |
META_TWITTER_TYPE | 'Website' |
META_USE_OG_PROPERTIES | True |
META_USE_SCHEMAORG_PROPERTIES | True |
META_USE_TITLE_TAG | True |
META_USE_TWITTER_PROPERTIES | True |
MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', 'django.middleware.locale.LocaleMiddleware', 'block_ip.middleware.BlockIPMiddleware', 'cms.middleware.user.CurrentUserMiddleware', 'cms.middleware.page.CurrentPageMiddleware', 'cms.middleware.toolbar.ToolbarMiddleware', 'cms.middleware.language.LanguageCookieMiddleware', 'cms.middleware.utils.ApphookReloadMiddleware', 'debug_toolbar.middleware.DebugToolbarMiddleware', 'accounts.middleware.InstagramMiddleware', 'accounts.middleware.FixUrlMiddleware', 'accounts.middleware.CustomRedirectFallbackMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
PREPEND_WWW | False |
ROOT_DIR | PosixPath('/home2/gnvmalli') |
ROOT_URLCONF | 'gnvmall.urls' |
RSA_PATH | PosixPath('/home2/gnvmalli/gnvmall/gnvmall') |
SANDBOX | False |
SECRET_KEY | '********************' |
SECURE_BROWSER_XSS_FILTER | False |
SECURE_CONTENT_TYPE_NOSNIFF | True |
SECURE_HSTS_INCLUDE_SUBDOMAINS | False |
SECURE_HSTS_PRELOAD | False |
SECURE_HSTS_SECONDS | 0 |
SECURE_PROXY_SSL_HEADER | ('HTTP_X_FORWARDED_PROTO', 'https') |
SECURE_REDIRECT_EXEMPT | [] |
SECURE_REFERRER_POLICY | 'same-origin' |
SECURE_SSL_HOST | None |
SECURE_SSL_REDIRECT | False |
SERVER_EMAIL | 'root@localhost' |
SESSION_CACHE_ALIAS | 'default' |
SESSION_COOKIE_AGE | 1209600 |
SESSION_COOKIE_DOMAIN | None |
SESSION_COOKIE_HTTPONLY | True |
SESSION_COOKIE_NAME | 'sessionid' |
SESSION_COOKIE_PATH | '/' |
SESSION_COOKIE_SAMESITE | 'Lax' |
SESSION_COOKIE_SECURE | False |
SESSION_ENGINE | 'django.contrib.sessions.backends.db' |
SESSION_EXPIRE_AT_BROWSER_CLOSE | False |
SESSION_FILE_PATH | None |
SESSION_SAVE_EVERY_REQUEST | False |
SESSION_SERIALIZER | 'django.contrib.sessions.serializers.JSONSerializer' |
SETTINGS_MODULE | 'gnvmall.settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
SITE_ID | 1 |
STATICFILES_DIRS | [PosixPath('/home2/gnvmalli/gnvmall/static')] |
STATICFILES_FINDERS | ('django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder') |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | PosixPath('/home2/gnvmalli/public_html/static') |
STATIC_URL | '/static/' |
TEBUG_TOOLBAR_CONFIG | {'SHOW_TOOLBAR_CALLBACK': <function <lambda> at 0x7fa5579ab830>} |
TEMPLATES | [{'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [PosixPath('/home2/gnvmalli/gnvmall/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', 'cart.context_processors.cart', 'sekizai.context_processors.sekizai', 'cms.context_processors.cms_settings', 'django.template.context_processors.i18n'], 'libraries': {'customtags': 'products.templatetags.customtags'}, 'loaders': [('django.template.loaders.cached.Loader', ['django.template.loaders.filesystem.Loader', 'django.template.loaders.app_directories.Loader'])]}}] |
TEMPLATES_DIR | PosixPath('/home2/gnvmalli/gnvmall/templates') |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
THUMBNAIL_PROCESSORS | ('easy_thumbnails.processors.colorspace', 'easy_thumbnails.processors.autocrop', 'filer.thumbnail_processors.scale_and_crop_with_subject_location', 'easy_thumbnails.processors.filters', 'easy_thumbnails.processors.background') |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'Asia/Tehran' |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | False |
USE_X_FORWARDED_HOST | True |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'gnvmall.wsgi.application' |
X_FRAME_OPTIONS | ('SAMEORIGIN; ALLOW-FROM https://www.trustseal.enamad.ir/; ALLOW-FROM ' 'https://www.enamad.ir/;') |
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.