The QuerySet value for an exact lookup must be limited to one result using slicing.
Request Method: | GET |
---|---|
Request URL: | http://superiorhouseholds.com/product-list///supa%20cook/None/ |
Django Version: | 3.1.7 |
Exception Type: | ValueError |
Exception Value: | The QuerySet value for an exact lookup must be limited to one result using slicing. |
Exception Location: | /env/lib/python3.10/site-packages/django/db/models/lookups.py, line 284, in process_rhs |
Python Executable: | /env/bin/python |
Python Version: | 3.10.13 |
Python Path: | ['/app', '/env/bin', '/usr/local/lib/python310.zip', '/usr/local/lib/python3.10', '/usr/local/lib/python3.10/lib-dynload', '/env/lib/python3.10/site-packages'] |
Server time: | Thu, 28 Mar 2024 22:39:21 +0000 |
/env/lib/python3.10/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 | ValueError('The QuerySet value for an exact lookup must be limited to one result using slicing.') |
get_response | <bound method BaseHandler._get_response of <django.core.handlers.wsgi.WSGIHandler object at 0x7fc15c730760>> |
request | <WSGIRequest: GET '/product-list///supa%20cook/None/'> |
/env/lib/python3.10/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 ProductListByCategory at 0x7fc15bb5cdc0> |
callback_args | () |
callback_kwargs | {'attr_value': 'None', 'brand_name': 'supa cook', 'category_slug': '', 'subcategory_slug': ''} |
middleware_method | <bound method CsrfViewMiddleware.process_view of <django.middleware.csrf.CsrfViewMiddleware object at 0x7fc15c105f90>> |
request | <WSGIRequest: GET '/product-list///supa%20cook/None/'> |
response | None |
self | <django.core.handlers.wsgi.WSGIHandler object at 0x7fc15c730760> |
wrapped_callback | <function ProductListByCategory at 0x7fc15bb5cdc0> |
/env/lib/python3.10/site-packages/django/views/generic/base.py
, line 70, in view
self = cls(**initkwargs)
self.setup(request, *args, **kwargs)
if not hasattr(self, 'request'):
raise AttributeError(
"%s instance has no 'request' attribute. Did you override "
"setup() and forget to call super()?" % cls.__name__
)
return self.dispatch(request, *args, **kwargs)…
view.view_class = cls
view.view_initkwargs = initkwargs
# take name and docstring from class
update_wrapper(view, cls, updated=())
Variable | Value |
---|---|
args | () |
cls | <class 'products.views.views.ProductListByCategory'> |
initkwargs | {} |
kwargs | {'attr_value': 'None', 'brand_name': 'supa cook', 'category_slug': '', 'subcategory_slug': ''} |
request | <WSGIRequest: GET '/product-list///supa%20cook/None/'> |
self | <products.views.views.ProductListByCategory object at 0x7fc15a544d60> |
/env/lib/python3.10/site-packages/django/views/generic/base.py
, line 98, in dispatch
# Try to dispatch to the right method; if a method doesn't exist,
# defer to the error handler. Also defer to the error handler if the
# request method isn't on the approved list.
if request.method.lower() in self.http_method_names:
handler = getattr(self, request.method.lower(), self.http_method_not_allowed)
else:
handler = self.http_method_not_allowed
return handler(request, *args, **kwargs)…
def http_method_not_allowed(self, request, *args, **kwargs):
logger.warning(
'Method Not Allowed (%s): %s', request.method, request.path,
extra={'status_code': 405, 'request': request}
)
Variable | Value |
---|---|
args | () |
handler | <bound method ProductListByCategory.get of <products.views.views.ProductListByCategory object at 0x7fc15a544d60>> |
kwargs | {'attr_value': 'None', 'brand_name': 'supa cook', 'category_slug': '', 'subcategory_slug': ''} |
request | <WSGIRequest: GET '/product-list///supa%20cook/None/'> |
self | <products.views.views.ProductListByCategory object at 0x7fc15a544d60> |
/app/products/views/views.py
, line 201, in get
product_ids =[ product.id for product in Product.objects.filter(id__in=product_ids,brand__name = brand_name) ]
products = Product.objects.filter(id__in = product_ids)
product_groups.append({"category":category.category,"category_slug":category.slug,"attr_value":attr_value,"attributes": attributes,"products":products})
# subcategories
subcategories = []
for sub_category in SubCategory.objects.filter(category = category):…
# random_items = random.sample(items, 3)
random_product = None
try:
random_product = random.choice(
#get only those products with an image attached
[ product_image.product for product_image in ProductImage.objects.filter(product__sub_category = sub_category).exclude(image='')]
Variable | Value |
---|---|
attr_value | 'None' |
brand_name | 'supa cook' |
categories | <QuerySet [<Category: Dinning and Catering>, <Category: Kitchen Appliances>, <Category: Cookware>, <Category: Bakeware>, <Category: Organizers>, <Category: kitchen Accessories>, <Category: General HouseHolds>]> |
category | <QuerySet []> |
category_slug | '' |
contacts | <QuerySet [<Contact: 0713852248 >> Name not given >, <Contact: 0732852248 >> Name not given >, <Contact: 0101852248 >> Name not given >, <Contact: 0734852248 >> Name not given >, <Contact: 0101852244 >> Name not given >, <Contact: 0103852248 >> Name not given >]> |
location | <QuerySet [<Location: Location object (2)>]> |
product_groups | [] |
ratings_avg | 3.501931339423518 |
ratings_count | 119865 |
request | <WSGIRequest: GET '/product-list///supa%20cook/None/'> |
review_form | <ReviewForm bound=False, valid=Unknown, fields=(reviewer_name;stars;review)> |
reviews | <QuerySet [<Review: Review object (119997)>, <Review: Review object (119996)>, <Review: Review object (119995)>, <Review: Review object (119994)>, <Review: Review object (119993)>, <Review: Review object (119992)>, <Review: Review object (119991)>, <Review: Review object (119990)>, <Review: Review object (119989)>, <Review: Review object (119988)>]> |
self | <products.views.views.ProductListByCategory object at 0x7fc15a544d60> |
session | <Session: idv94kkgy0b238sgysv1n17a09skptn1> |
shopdetail | <ShopDetail: my shop details> |
social_media_links | <QuerySet [<SocialMediaLink: SocialMediaLink object (2)>, <SocialMediaLink: SocialMediaLink object (1)>]> |
subcategories | [] |
subcategory_slug | '' |
/env/lib/python3.10/site-packages/django/db/models/query.py
, line 287, in __iter__
2. sql.compiler.results_iter()
- Returns one row at time. At this point the rows are still just
tuples. In some cases the return values are converted to
Python values at this location.
3. self.iterator()
- Responsible for turning the rows into model objects.
"""
self._fetch_all()…
return iter(self._result_cache)
def __bool__(self):
self._fetch_all()
return bool(self._result_cache)
Variable | Value |
---|---|
self | Error in formatting: ValueError: The QuerySet value for an exact lookup must be limited to one result using slicing. |
/env/lib/python3.10/site-packages/django/db/models/query.py
, line 1308, in _fetch_all
c._known_related_objects = self._known_related_objects
c._iterable_class = self._iterable_class
c._fields = self._fields
return c
def _fetch_all(self):
if self._result_cache is None:
self._result_cache = list(self._iterable_class(self))…
if self._prefetch_related_lookups and not self._prefetch_done:
self._prefetch_related_objects()
def _next_is_sticky(self):
"""
Indicate that the next filter call and the one following that should
Variable | Value |
---|---|
self | Error in formatting: ValueError: The QuerySet value for an exact lookup must be limited to one result using slicing. |
/env/lib/python3.10/site-packages/django/db/models/query.py
, line 53, in __iter__
def __iter__(self):
queryset = self.queryset
db = queryset.db
compiler = queryset.query.get_compiler(using=db)
# Execute the query. This will also fill compiler.select, klass_info,
# and annotations.
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size)…
select, klass_info, annotation_col_map = (compiler.select, compiler.klass_info,
compiler.annotation_col_map)
model_cls = klass_info['model']
select_fields = klass_info['select_fields']
model_fields_start, model_fields_end = select_fields[0], select_fields[-1] + 1
init_list = [f[0].target.attname
Variable | Value |
---|---|
compiler | <django.db.models.sql.compiler.SQLCompiler object at 0x7fc15a546dd0> |
db | 'default' |
queryset | Error in formatting: ValueError: The QuerySet value for an exact lookup must be limited to one result using slicing. |
self | <django.db.models.query.ModelIterable object at 0x7fc15a545000> |
/env/lib/python3.10/site-packages/django/db/models/sql/compiler.py
, line 1143, in execute_sql
cursor is returned if any query is executed, since it's used by
subclasses such as InsertQuery). It's possible, however, that no query
is needed, as the filters describe an empty set. In that case, None is
returned, to avoid any unnecessary database interaction.
"""
result_type = result_type or NO_RESULTS
try:
sql, params = self.as_sql()…
if not sql:
raise EmptyResultSet
except EmptyResultSet:
if result_type == MULTI:
return iter([])
else:
Variable | Value |
---|---|
chunk_size | 100 |
chunked_fetch | False |
result_type | 'multi' |
self | <django.db.models.sql.compiler.SQLCompiler object at 0x7fc15a546dd0> |
/env/lib/python3.10/site-packages/django/db/models/sql/compiler.py
, line 513, in as_sql
raise NotSupportedError('{} is not supported on this database backend.'.format(combinator))
result, params = self.get_combinator_sql(combinator, self.query.combinator_all)
else:
distinct_fields, distinct_params = self.get_distinct()
# This must come after 'select', 'ordering', and 'distinct'
# (see docstring of get_from_clause() for details).
from_, f_params = self.get_from_clause()
where, w_params = self.compile(self.where) if self.where is not None else ("", [])…
having, h_params = self.compile(self.having) if self.having is not None else ("", [])
result = ['SELECT']
params = []
if self.query.distinct:
distinct_result, distinct_params = self.connection.ops.distinct_sql(
Variable | Value |
---|---|
combinator | None |
distinct_fields | [] |
distinct_params | [] |
extra_select | [] |
f_params | [] |
features | <django.db.backends.postgresql.features.DatabaseFeatures object at 0x7fc15c21f100> |
for_update_part | None |
from_ | ['"products_subcategory"'] |
group_by | [] |
order_by | [] |
refcounts_before | {'products_category': 0, 'products_subcategory': 1} |
self | <django.db.models.sql.compiler.SQLCompiler object at 0x7fc15a546dd0> |
with_col_aliases | False |
with_limit_offset | 0 |
with_limits | True |
/env/lib/python3.10/site-packages/django/db/models/sql/compiler.py
, line 430, in compile
return r
def compile(self, node):
vendor_impl = getattr(node, 'as_' + self.connection.vendor, None)
if vendor_impl:
sql, params = vendor_impl(self, self.connection)
else:
sql, params = node.as_sql(self, self.connection)…
return sql, params
def get_combinator_sql(self, combinator, all):
features = self.connection.features
compilers = [
query.get_compiler(self.using, self.connection)
Variable | Value |
---|---|
node | <WhereNode: (AND: <django.db.models.fields.related_lookups.RelatedExact object at 0x7fc15a46eda0>)> |
self | <django.db.models.sql.compiler.SQLCompiler object at 0x7fc15a546dd0> |
vendor_impl | None |
/env/lib/python3.10/site-packages/django/db/models/sql/where.py
, line 81, in as_sql
if self.connector == AND:
full_needed, empty_needed = len(self.children), 1
else:
full_needed, empty_needed = 1, len(self.children)
for child in self.children:
try:
sql, params = compiler.compile(child)…
except EmptyResultSet:
empty_needed -= 1
else:
if sql:
result.append(sql)
result_params.extend(params)
Variable | Value |
---|---|
child | <django.db.models.fields.related_lookups.RelatedExact object at 0x7fc15a46eda0> |
compiler | <django.db.models.sql.compiler.SQLCompiler object at 0x7fc15a546dd0> |
connection | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7fc15c4006d0> |
empty_needed | 1 |
full_needed | 1 |
result | [] |
result_params | [] |
self | <WhereNode: (AND: <django.db.models.fields.related_lookups.RelatedExact object at 0x7fc15a46eda0>)> |
/env/lib/python3.10/site-packages/django/db/models/sql/compiler.py
, line 430, in compile
return r
def compile(self, node):
vendor_impl = getattr(node, 'as_' + self.connection.vendor, None)
if vendor_impl:
sql, params = vendor_impl(self, self.connection)
else:
sql, params = node.as_sql(self, self.connection)…
return sql, params
def get_combinator_sql(self, combinator, all):
features = self.connection.features
compilers = [
query.get_compiler(self.using, self.connection)
Variable | Value |
---|---|
node | <django.db.models.fields.related_lookups.RelatedExact object at 0x7fc15a46eda0> |
self | <django.db.models.sql.compiler.SQLCompiler object at 0x7fc15a546dd0> |
vendor_impl | None |
/env/lib/python3.10/site-packages/django/db/models/fields/related_lookups.py
, line 132, in as_sql
from django.db.models.sql.where import AND, WhereNode
root_constraint = WhereNode()
for target, source, val in zip(self.lhs.targets, self.lhs.sources, self.rhs):
lookup_class = target.get_lookup(self.lookup_name)
root_constraint.add(
lookup_class(target.get_col(self.lhs.alias, source), val), AND)
return root_constraint.as_sql(compiler, connection)
return super().as_sql(compiler, connection)…
class RelatedExact(RelatedLookupMixin, Exact):
pass
Variable | Value |
---|---|
__class__ | <class 'django.db.models.fields.related_lookups.RelatedLookupMixin'> |
compiler | <django.db.models.sql.compiler.SQLCompiler object at 0x7fc15a546dd0> |
connection | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7fc15c4006d0> |
self | <django.db.models.fields.related_lookups.RelatedExact object at 0x7fc15a46eda0> |
/env/lib/python3.10/site-packages/django/db/models/lookups.py
, line 302, in as_sql
isinstance(self.rhs, bool) and
getattr(self.lhs, 'conditional', False) and
connection.ops.conditional_expression_supported_in_where_clause(self.lhs)
):
lhs_sql, params = self.process_lhs(compiler, connection)
template = '%s' if self.rhs else 'NOT %s'
return template % lhs_sql, params
return super().as_sql(compiler, connection)…
@Field.register_lookup
class IExact(BuiltinLookup):
lookup_name = 'iexact'
prepare_rhs = False
Variable | Value |
---|---|
__class__ | <class 'django.db.models.lookups.Exact'> |
compiler | <django.db.models.sql.compiler.SQLCompiler object at 0x7fc15a546dd0> |
connection | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7fc15c4006d0> |
self | <django.db.models.fields.related_lookups.RelatedExact object at 0x7fc15a46eda0> |
/env/lib/python3.10/site-packages/django/db/models/lookups.py
, line 181, in as_sql
lhs_sql = connection.ops.field_cast_sql(
db_type, field_internal_type) % lhs_sql
lhs_sql = connection.ops.lookup_cast(self.lookup_name, field_internal_type) % lhs_sql
return lhs_sql, list(params)
def as_sql(self, compiler, connection):
lhs_sql, params = self.process_lhs(compiler, connection)
rhs_sql, rhs_params = self.process_rhs(compiler, connection)…
params.extend(rhs_params)
rhs_sql = self.get_rhs_op(connection, rhs_sql)
return '%s %s' % (lhs_sql, rhs_sql), params
def get_rhs_op(self, connection, rhs):
return connection.operators[self.lookup_name] % rhs
Variable | Value |
---|---|
compiler | <django.db.models.sql.compiler.SQLCompiler object at 0x7fc15a546dd0> |
connection | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7fc15c4006d0> |
lhs_sql | '"products_subcategory"."category_id"' |
params | [] |
self | <django.db.models.fields.related_lookups.RelatedExact object at 0x7fc15a46eda0> |
/env/lib/python3.10/site-packages/django/db/models/lookups.py
, line 284, in process_rhs
from django.db.models.sql.query import Query
if isinstance(self.rhs, Query):
if self.rhs.has_limit_one():
if not self.rhs.has_select_fields:
self.rhs.clear_select_clause()
self.rhs.add_fields(['pk'])
else:
raise ValueError(…
'The QuerySet value for an exact lookup must be limited to '
'one result using slicing.'
)
return super().process_rhs(compiler, connection)
def as_sql(self, compiler, connection):
Variable | Value |
---|---|
Query | <class 'django.db.models.sql.query.Query'> |
__class__ | <class 'django.db.models.lookups.Exact'> |
compiler | <django.db.models.sql.compiler.SQLCompiler object at 0x7fc15a546dd0> |
connection | <django.db.backends.postgresql.base.DatabaseWrapper object at 0x7fc15c4006d0> |
self | <django.db.models.fields.related_lookups.RelatedExact object at 0x7fc15a46eda0> |
AnonymousUser
No GET data
No POST data
No FILES data
No cookie data
Variable | Value |
---|---|
HTTP_ACCEPT | '*/*' |
HTTP_CONNECTION | 'close' |
HTTP_HOST | 'superiorhouseholds.com' |
HTTP_USER_AGENT | 'claudebot' |
HTTP_X_FORWARDED_FOR | '54.211.203.45' |
HTTP_X_FORWARDED_PROTO | 'https' |
PATH_INFO | '/product-list///supa cook/None/' |
QUERY_STRING | '' |
RAW_URI | '/product-list///supa%20cook/None/' |
REMOTE_ADDR | '172.17.0.1' |
REMOTE_PORT | '48104' |
REQUEST_METHOD | 'GET' |
SCRIPT_NAME | '' |
SERVER_NAME | '0.0.0.0' |
SERVER_PORT | '8000' |
SERVER_PROTOCOL | 'HTTP/1.0' |
SERVER_SOFTWARE | 'gunicorn/21.2.0' |
gunicorn.socket | <socket.socket fd=9, family=AddressFamily.AF_INET, type=SocketKind.SOCK_STREAM, proto=0, laddr=('172.17.0.5', 8000), raddr=('172.17.0.1', 48104)> |
wsgi.errors | <gunicorn.http.wsgi.WSGIErrorsWrapper object at 0x7fc15a546ce0> |
wsgi.file_wrapper | <class 'gunicorn.http.wsgi.FileWrapper'> |
wsgi.input | <gunicorn.http.body.Body object at 0x7fc15a546620> |
wsgi.input_terminated | True |
wsgi.multiprocess | True |
wsgi.multithread | False |
wsgi.run_once | False |
wsgi.url_scheme | 'http' |
wsgi.version | (1, 0) |
ecommerce.settings
Setting | Value |
---|---|
ABSOLUTE_URL_OVERRIDES | {} |
ADMINS | [] |
ALLOWED_HOSTS | ['www.superiorhouseholds.com', 'superiorhouseholds.com', '159.89.104.249', '127.0.0.1', 'localhost'] |
APPEND_SLASH | True |
AUTHENTICATION_BACKENDS | ['django.contrib.auth.backends.ModelBackend'] |
AUTH_PASSWORD_VALIDATORS | '********************' |
AUTH_USER_MODEL | 'auth.User' |
AWS_ACCESS_KEY_ID | '********************' |
AWS_LOCATION | 'nanoafrika' |
AWS_S3_ENDPOINT_URL | 'https://ams3.digitaloceanspaces.com/' |
AWS_S3_OBJECT_PARAMETERS | {'CacheControl': 'max-age=86400'} |
AWS_SECRET_ACCESS_KEY | '********************' |
AWS_STORAGE_BUCKET_NAME | 'nanoafrika' |
BASE_DIR | '/app' |
CACHES | {'default': {'BACKEND': 'django.core.cache.backends.locmem.LocMemCache'}} |
CACHE_MIDDLEWARE_ALIAS | 'default' |
CACHE_MIDDLEWARE_KEY_PREFIX | '********************' |
CACHE_MIDDLEWARE_SECONDS | 600 |
CSRF_COOKIE_AGE | 31449600 |
CSRF_COOKIE_DOMAIN | None |
CSRF_COOKIE_HTTPONLY | False |
CSRF_COOKIE_NAME | 'csrftoken' |
CSRF_COOKIE_PATH | '/' |
CSRF_COOKIE_SAMESITE | 'Lax' |
CSRF_COOKIE_SECURE | False |
CSRF_FAILURE_VIEW | 'django.views.csrf.csrf_failure' |
CSRF_HEADER_NAME | 'HTTP_X_CSRFTOKEN' |
CSRF_TRUSTED_ORIGINS | [] |
CSRF_USE_SESSIONS | False |
DATABASES | {'default': {'ATOMIC_REQUESTS': False, 'AUTOCOMMIT': True, 'CONN_MAX_AGE': 0, 'ENGINE': 'django.db.backends.postgresql', 'HOST': '159.89.104.249', 'NAME': 'superiorhouseholds_db', 'OPTIONS': {}, 'PASSWORD': '********************', 'PORT': '5432', 'TEST': {'CHARSET': None, 'COLLATION': None, 'MIGRATE': True, 'MIRROR': None, 'NAME': None}, 'TIME_ZONE': None, 'USER': 'casper'}} |
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_CHARSET | 'utf-8' |
DEFAULT_EXCEPTION_REPORTER | 'django.views.debug.ExceptionReporter' |
DEFAULT_EXCEPTION_REPORTER_FILTER | 'django.views.debug.SafeExceptionReporterFilter' |
DEFAULT_FILE_STORAGE | 'ecommerce.storage_backends.MediaStorage' |
DEFAULT_FROM_EMAIL | 'webmaster@localhost' |
DEFAULT_HASHING_ALGORITHM | 'sha256' |
DEFAULT_INDEX_TABLESPACE | '' |
DEFAULT_TABLESPACE | '' |
DISALLOWED_USER_AGENTS | [] |
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 |
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 | [] |
INSTALLED_APPS | ['django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.humanize', 'storages', 'widget_tweaks', 'catalogue', 'reviews', 'shopdetail', 'orders', 'products', 'users'] |
INTERNAL_IPS | [] |
LANGUAGES | [('af', 'Afrikaans'), ('ar', 'Arabic'), ('ar-dz', 'Algerian Arabic'), ('ast', 'Asturian'), ('az', 'Azerbaijani'), ('bg', 'Bulgarian'), ('be', 'Belarusian'), ('bn', 'Bengali'), ('br', 'Breton'), ('bs', 'Bosnian'), ('ca', 'Catalan'), ('cs', 'Czech'), ('cy', 'Welsh'), ('da', 'Danish'), ('de', 'German'), ('dsb', 'Lower Sorbian'), ('el', 'Greek'), ('en', 'English'), ('en-au', 'Australian English'), ('en-gb', 'British English'), ('eo', 'Esperanto'), ('es', 'Spanish'), ('es-ar', 'Argentinian Spanish'), ('es-co', 'Colombian Spanish'), ('es-mx', 'Mexican Spanish'), ('es-ni', 'Nicaraguan Spanish'), ('es-ve', 'Venezuelan Spanish'), ('et', 'Estonian'), ('eu', 'Basque'), ('fa', 'Persian'), ('fi', 'Finnish'), ('fr', 'French'), ('fy', 'Frisian'), ('ga', 'Irish'), ('gd', 'Scottish Gaelic'), ('gl', 'Galician'), ('he', 'Hebrew'), ('hi', 'Hindi'), ('hr', 'Croatian'), ('hsb', 'Upper Sorbian'), ('hu', 'Hungarian'), ('hy', 'Armenian'), ('ia', 'Interlingua'), ('id', 'Indonesian'), ('ig', 'Igbo'), ('io', 'Ido'), ('is', 'Icelandic'), ('it', 'Italian'), ('ja', 'Japanese'), ('ka', 'Georgian'), ('kab', 'Kabyle'), ('kk', 'Kazakh'), ('km', 'Khmer'), ('kn', 'Kannada'), ('ko', 'Korean'), ('ky', 'Kyrgyz'), ('lb', 'Luxembourgish'), ('lt', 'Lithuanian'), ('lv', 'Latvian'), ('mk', 'Macedonian'), ('ml', 'Malayalam'), ('mn', 'Mongolian'), ('mr', 'Marathi'), ('my', 'Burmese'), ('nb', 'Norwegian Bokmål'), ('ne', 'Nepali'), ('nl', 'Dutch'), ('nn', 'Norwegian Nynorsk'), ('os', 'Ossetic'), ('pa', 'Punjabi'), ('pl', 'Polish'), ('pt', 'Portuguese'), ('pt-br', 'Brazilian Portuguese'), ('ro', 'Romanian'), ('ru', 'Russian'), ('sk', 'Slovak'), ('sl', 'Slovenian'), ('sq', 'Albanian'), ('sr', 'Serbian'), ('sr-latn', 'Serbian Latin'), ('sv', 'Swedish'), ('sw', 'Swahili'), ('ta', 'Tamil'), ('te', 'Telugu'), ('tg', 'Tajik'), ('th', 'Thai'), ('tk', 'Turkmen'), ('tr', 'Turkish'), ('tt', 'Tatar'), ('udm', 'Udmurt'), ('uk', 'Ukrainian'), ('ur', 'Urdu'), ('uz', 'Uzbek'), ('vi', 'Vietnamese'), ('zh-hans', 'Simplified Chinese'), ('zh-hant', 'Traditional Chinese')] |
LANGUAGES_BIDI | ['he', 'ar', 'ar-dz', 'fa', 'ur'] |
LANGUAGE_CODE | 'en-us' |
LANGUAGE_COOKIE_AGE | None |
LANGUAGE_COOKIE_DOMAIN | None |
LANGUAGE_COOKIE_HTTPONLY | False |
LANGUAGE_COOKIE_NAME | 'django_language' |
LANGUAGE_COOKIE_PATH | '/' |
LANGUAGE_COOKIE_SAMESITE | None |
LANGUAGE_COOKIE_SECURE | False |
LOCALE_PATHS | [] |
LOGGING | {} |
LOGGING_CONFIG | None |
LOGIN_REDIRECT_URL | '/accounts/profile/' |
LOGIN_URL | '/accounts/login/' |
LOGLEVEL | 'INFO' |
LOGOUT_REDIRECT_URL | None |
MANAGERS | [] |
MEDIA_ROOT | '' |
MEDIA_URL | '/' |
MESSAGE_STORAGE | 'django.contrib.messages.storage.fallback.FallbackStorage' |
MIDDLEWARE | ['django.middleware.security.SecurityMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.common.CommonMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware'] |
MIGRATION_MODULES | {} |
MONTH_DAY_FORMAT | 'F j' |
NUMBER_GROUPING | 0 |
PASSWORD_HASHERS | '********************' |
PASSWORD_RESET_TIMEOUT | '********************' |
PASSWORD_RESET_TIMEOUT_DAYS | '********************' |
PREPEND_WWW | False |
ROOT_URLCONF | 'ecommerce.urls' |
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 | None |
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 | 'ecommerce.settings' |
SHORT_DATETIME_FORMAT | 'm/d/Y P' |
SHORT_DATE_FORMAT | 'm/d/Y' |
SIGNING_BACKEND | 'django.core.signing.TimestampSigner' |
SILENCED_SYSTEM_CHECKS | [] |
STATICFILES_DIRS | ('/app/static',) |
STATICFILES_FINDERS | ['django.contrib.staticfiles.finders.FileSystemFinder', 'django.contrib.staticfiles.finders.AppDirectoriesFinder'] |
STATICFILES_STORAGE | 'django.contrib.staticfiles.storage.StaticFilesStorage' |
STATIC_ROOT | '/app/staticfiles' |
STATIC_URL | '/static/' |
TEMPLATES | [{'APP_DIRS': True, 'BACKEND': 'django.template.backends.django.DjangoTemplates', 'DIRS': [], 'OPTIONS': {'context_processors': ['django.template.context_processors.debug', 'django.template.context_processors.request', 'django.contrib.auth.context_processors.auth', 'django.contrib.messages.context_processors.messages']}}] |
TEST_NON_SERIALIZED_APPS | [] |
TEST_RUNNER | 'django.test.runner.DiscoverRunner' |
THOUSAND_SEPARATOR | ',' |
TIME_FORMAT | 'P' |
TIME_INPUT_FORMATS | ['%H:%M:%S', '%H:%M:%S.%f', '%H:%M'] |
TIME_ZONE | 'UTC' |
USE_I18N | True |
USE_L10N | True |
USE_THOUSAND_SEPARATOR | False |
USE_TZ | True |
USE_X_FORWARDED_HOST | False |
USE_X_FORWARDED_PORT | False |
WSGI_APPLICATION | 'ecommerce.wsgi.application' |
X_FRAME_OPTIONS | 'DENY' |
YEAR_MONTH_FORMAT | 'F Y' |
You're seeing this error because you have DEBUG = True
in your
Django settings file. Change that to False
, and Django will
display a standard page generated by the handler for this status code.