Thanks, Just installed here is what i can see from the Sentry backend
handled
no
level
level
error
release
release
--
environment
environment
production
url
url
https://company.xxx.com/account/dashboard/
transaction
/account/dashboard/
status_code
status_code
--
Trace: Trace ID
ab4259d9c19a4fcbb947d1e54cadc24e
Runtime: Name
CPython
Runtime: Version
3.8.18
Error Details
Browser: Brave 131
Operating System: Windows
Environment: Production
Django Version: CPython 3.8.18
Server: das107.truehost.cloud
URL: https://company.XXX.com/account/dashboard/
Transaction: /account/dashboard/
Error Information
Level: Error
Handled: No
Mechanism: Django
Runtime: CPython 3.8.18
Request Headers
Accept: text/html, application/xhtml+xml, application/xml;q=0.9, image/avif, image/webp, image/apng, */*;q=0.8
Accept-Encoding: gzip, br
Accept-Language: en-US, en;q=0.7
Cache-Control: max-age=0
Cdn-Loop: cloudflare; loops=1; subreqs=1
Cf-Connecting-Ip: 41.90.180.45
Cf-Ew-Via: 15
Cf-Ipcountry: KE (Kenya)
Cf-Ray: 8ecb4815530cd0b4-CDG
Cf-Visitor: {"scheme":"https"}
Cookie: [Filtered]
Host: company.xxx.com
Priority: u=0, i
Referer: https://company.xxx.com/account/profile/
Sec-Ch-Ua: "Brave";v="131", "Chromium";v="131", "Not_A Brand";v="24"
Sec-Ch-Ua-Mobile: ?0
Sec-Ch-Ua-Platform: "Windows"
Sec-Fetch-Dest: document
Sec-Fetch-Mode: navigate
Sec-Fetch-Site: same-origin
Sec-Fetch-User: ?1
Sec-Gpc: 1
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36
X-Forwarded-Proto: https
Server Information
Server Name: company.xxx.com
Server Port: 443 (HTTPS)
Query
info
10:58:39.896 AM
SELECT `website_website`.`id`, `website_website`.`image`, `website_website`.`website_title`,
`website_website`.`menu1`, `website_website`.`menu2`, `website_website`.`menu3`,
`website_website`.`button_text`, `website_website`.`button_link`, `website_website`.`footer_image`
FROM `website_website`
LIMIT 21
Query
info
10:58:39.892 AM
[Filtered]
Query
info
10:58:39.753 AM
SELECT EXTRACT(DAY
FROM `website_notification`.`created_at`) AS `created_at__day`, COUNT(`website_notification`.`created_at`) AS `count`
FROM `website_notification`
WHERE (EXTRACT(MONTH
FROM `website_notification`.`created_at`) = %s
AND `website_notification`.`created_at` BETWEEN %s AND %s
AND `website_notification`.`user_id` = %s)
GROUP BY 1
ORDER BY 1 ASC
Query
info
10:58:39.751 AM
SELECT EXTRACT(DAY
FROM `website_notification`.`created_at`) AS `created_at__day`, COUNT(`website_notification`.`created_at`) AS `count`
FROM `website_notification`
WHERE (EXTRACT(MONTH
FROM `website_notification`.`created_at`) = %s
AND `website_notification`.`created_at` BETWEEN %s AND %s)
GROUP BY 1
ORDER BY 1 ASC
Query
info
10:58:39.748 AM
SELECT COUNT(*) AS `__count`
FROM `website_profilepicture`
WHERE (EXTRACT(MONTH
FROM `website_profilepicture`.`updated_at`) = %s
AND `website_profilepicture`.`updated_at` BETWEEN %s AND %s
AND `website_profilepicture`.`user_id` = %s)
Query
info
10:58:39.736 AM
SELECT `website_profile`.`id`, `website_profile`.`user_id`, `website_profile`.`phone`
FROM `website_profile`
WHERE `website_profile`.`user_id` = %s
LIMIT 21
Query
info
10:58:39.732 AM
SELECT COUNT(*) AS `__count`
FROM `website_notification`
WHERE (`website_notification`.`read` = %s
AND `website_notification`.`user_id` = %s)
Query
info
10:58:39.728 AM
SELECT `website_profilepicture`.`id`, `website_profilepicture`.`user_id`, `website_profilepicture`.`image`,
`website_profilepicture`.`updated_at`
FROM `website_profilepicture`
WHERE `website_profilepicture`.`user_id` = %s
LIMIT 21
Query
info
10:58:39.726 AM
[Filtered]
Query
info
10:58:39.723 AM
SELECT `django_session`.`session_key`, `django_session`.`session_data`, `django_session`.`expire_date`
FROM `django_session`
WHERE (`django_session`.`expire_date` > %s
AND `django_session`.`session_key` = %s)
LIMIT 21
Query
info
10:58:39.240 AM
INSERT INTO `easyaudit_requestevent` (`url`,
`method`, `query_string`, `user_id`, `remote_ip`, `datetime`)
VALUES (%s, %s, %s, %s, %s, %s)
Query
info
10:58:39.234 AM
[Filtered]
Query
info
10:58:39.227 AM
SELECT `django_session`.`session_key`, `django_session`.`session_data`, `django_session`.`expire_date`
FROM `django_session`
WHERE (`django_session`.`expire_date` > %s
AND `django_session`.`session_key` = %s)
LIMIT 21
Query
info
10:58:39.221 AM
SELECT VERSION(), @@sql_mode, @@default_storage_engine, @@sql_auto_is_null, @@lower_case_table_names,
CONVERT_TZ('2001-01-01 01:00:00',
'UTC',
'UTC') IS NOT NULL
Query
info
10:58:39.210 AM
connect
##### ValueError
Missing staticfiles manifest entry for 'images'
django/contrib/staticfiles/storage.py in stored_name at line 513
Hide 13 more frames
clean_name = parsed_name.path.strip()
hash_key = self.hash_key(clean_name)
cache_name = self.hashed_files.get(hash_key)
if cache_name is None:
if self.manifest_strict:
raise ValueError(
"Missing staticfiles manifest entry for '%s'" % clean_name
)
cache_name = self.clean_name(self.hashed_name(name))
unparsed_name = list(parsed_name)
unparsed_name[2] = cache_name
cache_name
None
clean_name
"images"
hash_key
"images"
name
"images"
parsed_name
[
"",
"",
"images",
"",
""
]
self
<django.contrib.staticfiles.storage.ManifestStaticFilesStorage object at 0x7f401f69afa0>
django/contrib/staticfiles/storage.py in _url at line 182
hashed_name = name
else:
args = (clean_name,)
if hashed_files is not None:
args += (hashed_files,)
hashed_name = hashed_name_func(*args)
final_url = super().url(hashed_name)
# Special casing for a @font-face hack, like url(myfont.eot?#iefix")
# http://www.fontspring.com/blog/the-new-bulletproof-font-face-syntax
__class__
<class 'django.contrib.staticfiles.storage.HashedFilesMixin'>
args
[
"images"
]
clean_name
"images"
force
False
fragment
""
hashed_files
None
hashed_name_func
<bound method ManifestFilesMixin.stored_name of <django.contrib.staticfiles.storage.ManifestStaticFilesStorage object at 0x7f401f69afa0>>
name
"images"
self
<django.contrib.staticfiles.storage.ManifestStaticFilesStorage object at 0x7f401f69afa0>
django/contrib/staticfiles/storage.py in url at line 203
def url(self, name, force=False):
"""
Return the non-hashed URL in DEBUG mode.
"""
return self._url(self.stored_name, name, force)
def url_converter(self, name, hashed_files, template=None):
"""
Return the custom URL converter for the given file name.
"""
force
False
name
"images"
self
<django.contrib.staticfiles.storage.ManifestStaticFilesStorage object at 0x7f401f69afa0>
django/templatetags/static.py in handle_simple at line 129
@classmethod
def handle_simple(cls, path):
if apps.is_installed("django.contrib.staticfiles"):
from django.contrib.staticfiles.storage import staticfiles_storage
return staticfiles_storage.url(path)
else:
return urljoin(PrefixNode.handle_simple("STATIC_URL"), quote(path))
@classmethod
def handle_token(cls, parser, token):
cls
<class 'django.templatetags.static.StaticNode'>
path
"images"
staticfiles_storage
<django.contrib.staticfiles.storage.ConfiguredStorage object at 0x7f401f7e2310>
django/templatetags/static.py in url at line 113
f"{self.__class__.__name__}(varname={self.varname!r}, path={self.path!r})"
)
def url(self, context):
path = self.path.resolve(context)
return self.handle_simple(path)
def render(self, context):
url = self.url(context)
if context.autoescape:
url = conditional_escape(url)
context
[{'True': True, 'False': False, 'None': None}, {}, {}, {'username': 'charles', 'email': 'support@xxx.com', 'profile_picture': <ProfilePicture: charles's Profile Picture>, 'unread_notifications_count': 2, 'profile': None, 'website': <QuerySet [<Website: xxx>]>, 'last_login': datetime.datetime(2024, 12, 3, 21, 51, 53, 424535, tzinfo=datetime.timezone.utc), 'date_joined': datetime.datetime(2024, 11, 30, 12, 27, 31, 659487, tzinfo=datetime.timezone.utc), 'login_frequency_labels': '["1", "3"]', 'login_frequency_data': '[1, 1]', 'notification_frequency_labels': '["1", "3"]', 'notification_frequency_data': '[1, 1]', 'account_updates': 1, 'sentry_trace_meta': '<meta name="sentry-trace" content="ab4259d9c19a4fcbb947d1e54cadc24e-97e4a0ea4921a779-1"><meta name="baggage" content="sentry-trace_id=ab4259d9c19a4fcbb947d1e54cadc24e,sentry-environment=production,sentry-public_key=c8fe5600eb30d504b78d43e2813f489e,sentry-transaction=/account/dashboard/,sentry-sample_rate=1.0,sentry-sampled=true">'}]
path
"images"
self
StaticNode(varname='baseUrl', path=<FilterExpression '"images"'>)
django/templatetags/static.py in render at line 116
def url(self, context):
path = self.path.resolve(context)
return self.handle_simple(path)
def render(self, context):
url = self.url(context)
if context.autoescape:
url = conditional_escape(url)
if self.varname is None:
return url
context[self.varname] = url
context
[{'True': True, 'False': False, 'None': None}, {}, {}, {'username': 'charles', 'email': 'support@xxx.com', 'profile_picture': <ProfilePicture: charles's Profile Picture>, 'unread_notifications_count': 2, 'profile': None, 'website': <QuerySet [<Website: xxx>]>, 'last_login': datetime.datetime(2024, 12, 3, 21, 51, 53, 424535, tzinfo=datetime.timezone.utc), 'date_joined': datetime.datetime(2024, 11, 30, 12, 27, 31, 659487, tzinfo=datetime.timezone.utc), 'login_frequency_labels': '["1", "3"]', 'login_frequency_data': '[1, 1]', 'notification_frequency_labels': '["1", "3"]', 'notification_frequency_data': '[1, 1]', 'account_updates': 1, 'sentry_trace_meta': '<meta name="sentry-trace" content="ab4259d9c19a4fcbb947d1e54cadc24e-97e4a0ea4921a779-1"><meta name="baggage" content="sentry-trace_id=ab4259d9c19a4fcbb947d1e54cadc24e,sentry-environment=production,sentry-public_key=c8fe5600eb30d504b78d43e2813f489e,sentry-transaction=/account/dashboard/,sentry-sample_rate=1.0,sentry-sampled=true">'}]
self
StaticNode(varname='baseUrl', path=<FilterExpression '"images"'>)
django/template/base.py in render_annotated at line 966
rendering, the exception is annotated with contextual line information
where it occurred in the template. For internal usage this method is
preferred over using the render method directly.
"""
try:
return self.render(context)
except Exception as e:
if context.template.engine.debug:
# Store the actual node that caused the exception.
if not hasattr(e, "_culprit_node"):
e._culprit_node = self
context
[{'True': True, 'False': False, 'None': None}, {}, {}, {'username': 'charles', 'email': 'support@xxx.com', 'profile_picture': <ProfilePicture: charles's Profile Picture>, 'unread_notifications_count': 2, 'profile': None, 'website': <QuerySet [<Website: xxx>]>, 'last_login': datetime.datetime(2024, 12, 3, 21, 51, 53, 424535, tzinfo=datetime.timezone.utc), 'date_joined': datetime.datetime(2024, 11, 30, 12, 27, 31, 659487, tzinfo=datetime.timezone.utc), 'login_frequency_labels': '["1", "3"]', 'login_frequency_data': '[1, 1]', 'notification_frequency_labels': '["1", "3"]', 'notification_frequency_data': '[1, 1]', 'account_updates': 1, 'sentry_trace_meta': '<meta name="sentry-trace" content="ab4259d9c19a4fcbb947d1e54cadc24e-97e4a0ea4921a779-1"><meta name="baggage" content="sentry-trace_id=ab4259d9c19a4fcbb947d1e54cadc24e,sentry-environment=production,sentry-public_key=c8fe5600eb30d504b78d43e2813f489e,sentry-transaction=/account/dashboard/,sentry-sample_rate=1.0,sentry-sampled=true">'}]
self
StaticNode(varname='baseUrl', path=<FilterExpression '"images"'>)
django/template/base.py in <listcomp> at line 1005
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
.0
<list_iterator object at 0x7f401e011640>
context
[{'True': True, 'False': False, 'None': None}, {}, {}, {'username': 'charles', 'email': 'support@xxx.com', 'profile_picture': <ProfilePicture: charles's Profile Picture>, 'unread_notifications_count': 2, 'profile': None, 'website': <QuerySet [<Website: xxx>]>, 'last_login': datetime.datetime(2024, 12, 3, 21, 51, 53, 424535, tzinfo=datetime.timezone.utc), 'date_joined': datetime.datetime(2024, 11, 30, 12, 27, 31, 659487, tzinfo=datetime.timezone.utc), 'login_frequency_labels': '["1", "3"]', 'login_frequency_data': '[1, 1]', 'notification_frequency_labels': '["1", "3"]', 'notification_frequency_data': '[1, 1]', 'account_updates': 1, 'sentry_trace_meta': '<meta name="sentry-trace" content="ab4259d9c19a4fcbb947d1e54cadc24e-97e4a0ea4921a779-1"><meta name="baggage" content="sentry-trace_id=ab4259d9c19a4fcbb947d1e54cadc24e,sentry-environment=production,sentry-public_key=c8fe5600eb30d504b78d43e2813f489e,sentry-transaction=/account/dashboard/,sentry-sample_rate=1.0,sentry-sampled=true">'}]
node
StaticNode(varname='baseUrl', path=<FilterExpression '"images"'>)
django/template/base.py in render at line 1005
# Set to True the first time a non-TextNode is inserted by
# extend_nodelist().
contains_nontext = False
def render(self, context):
return SafeString("".join([node.render_annotated(context) for node in self]))
def get_nodes_by_type(self, nodetype):
"Return a list of all nodes of the given type"
nodes = []
for node in self:
context
[{'True': True, 'False': False, 'None': None}, {}, {}, {'username': 'charles', 'email': 'support@xxx.com', 'profile_picture': <ProfilePicture: charles's Profile Picture>, 'unread_notifications_count': 2, 'profile': None, 'website': <QuerySet [<Website: xxx>]>, 'last_login': datetime.datetime(2024, 12, 3, 21, 51, 53, 424535, tzinfo=datetime.timezone.utc), 'date_joined': datetime.datetime(2024, 11, 30, 12, 27, 31, 659487, tzinfo=datetime.timezone.utc), 'login_frequency_labels': '["1", "3"]', 'login_frequency_data': '[1, 1]', 'notification_frequency_labels': '["1", "3"]', 'notification_frequency_data': '[1, 1]', 'account_updates': 1, 'sentry_trace_meta': '<meta name="sentry-trace" content="ab4259d9c19a4fcbb947d1e54cadc24e-97e4a0ea4921a779-1"><meta name="baggage" content="sentry-trace_id=ab4259d9c19a4fcbb947d1e54cadc24e,sentry-environment=production,sentry-public_key=c8fe5600eb30d504b78d43e2813f489e,sentry-transaction=/account/dashboard/,sentry-sample_rate=1.0,sentry-sampled=true">'}]
self
[
10 items
]
django/template/base.py in _render at line 167
self.__class__.__qualname__,
self.source[:20].replace("\n", ""),
)
def _render(self, context):
return self.nodelist.render(context)
def render(self, context):
"Display stage -- can be called many times"
with context.render_context.push_state(self):
if context.template is None:
context
[{'True': True, 'False': False, 'None': None}, {}, {}, {'username': 'charles', 'email': 'support@xxx.com', 'profile_picture': <ProfilePicture: charles's Profile Picture>, 'unread_notifications_count': 2, 'profile': None, 'website': <QuerySet [<Website: xxx>]>, 'last_login': datetime.datetime(2024, 12, 3, 21, 51, 53, 424535, tzinfo=datetime.timezone.utc), 'date_joined': datetime.datetime(2024, 11, 30, 12, 27, 31, 659487, tzinfo=datetime.timezone.utc), 'login_frequency_labels': '["1", "3"]', 'login_frequency_data': '[1, 1]', 'notification_frequency_labels': '["1", "3"]', 'notification_frequency_data': '[1, 1]', 'account_updates': 1, 'sentry_trace_meta': '<meta name="sentry-trace" content="ab4259d9c19a4fcbb947d1e54cadc24e-97e4a0ea4921a779-1"><meta name="baggage" content="sentry-trace_id=ab4259d9c19a4fcbb947d1e54cadc24e,sentry-environment=production,sentry-public_key=c8fe5600eb30d504b78d43e2813f489e,sentry-transaction=/account/dashboard/,sentry-sample_rate=1.0,sentry-sampled=true">'}]
self
<Template template_string="{% load static %}{%...">
django/template/base.py in render at line 175
"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):
"""
context
[{'True': True, 'False': False, 'None': None}, {}, {}, {'username': 'charles', 'email': 'support@xxx.com', 'profile_picture': <ProfilePicture: charles's Profile Picture>, 'unread_notifications_count': 2, 'profile': None, 'website': <QuerySet [<Website: xxx>]>, 'last_login': datetime.datetime(2024, 12, 3, 21, 51, 53, 424535, tzinfo=datetime.timezone.utc), 'date_joined': datetime.datetime(2024, 11, 30, 12, 27, 31, 659487, tzinfo=datetime.timezone.utc), 'login_frequency_labels': '["1", "3"]', 'login_frequency_data': '[1, 1]', 'notification_frequency_labels': '["1", "3"]', 'notification_frequency_data': '[1, 1]', 'account_updates': 1, 'sentry_trace_meta': '<meta name="sentry-trace" content="ab4259d9c19a4fcbb947d1e54cadc24e-97e4a0ea4921a779-1"><meta name="baggage" content="sentry-trace_id=ab4259d9c19a4fcbb947d1e54cadc24e,sentry-environment=production,sentry-public_key=c8fe5600eb30d504b78d43e2813f489e,sentry-transaction=/account/dashboard/,sentry-sample_rate=1.0,sentry-sampled=true">'}]
self
<Template template_string="{% load static %}{%...">
django/template/backends/django.py in render at line 61
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):
context
[{'True': True, 'False': False, 'None': None}, {}, {}, {'username': 'charles', 'email': 'support@xxx.com', 'profile_picture': <ProfilePicture: charles's Profile Picture>, 'unread_notifications_count': 2, 'profile': None, 'website': <QuerySet [<Website: xxx>]>, 'last_login': datetime.datetime(2024, 12, 3, 21, 51, 53, 424535, tzinfo=datetime.timezone.utc), 'date_joined': datetime.datetime(2024, 11, 30, 12, 27, 31, 659487, tzinfo=datetime.timezone.utc), 'login_frequency_labels': '["1", "3"]', 'login_frequency_data': '[1, 1]', 'notification_frequency_labels': '["1", "3"]', 'notification_frequency_data': '[1, 1]', 'account_updates': 1, 'sentry_trace_meta': '<meta name="sentry-trace" content="ab4259d9c19a4fcbb947d1e54cadc24e-97e4a0ea4921a779-1"><meta name="baggage" content="sentry-trace_id=ab4259d9c19a4fcbb947d1e54cadc24e,sentry-environment=production,sentry-public_key=c8fe5600eb30d504b78d43e2813f489e,sentry-transaction=/account/dashboard/,sentry-sample_rate=1.0,sentry-sampled=true">'}]
request
<WSGIRequest: GET '/account/dashboard/'>
self
<django.template.backends.django.Template object at 0x7f401e0ad4f0>
django/template/loader.py in render_to_string at line 62
"""
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]]
context
{
10 items
}
request
<WSGIRequest: GET '/account/dashboard/'>
template
<django.template.backends.django.Template object at 0x7f401e0ad4f0>
template_name
"account/dashboard.html"
using
None
django/shortcuts.py in render at line 24
):
"""
Return an HttpResponse whose content is filled with the result of calling
django.template.loader.render_to_string() with the passed arguments.
"
content = loader.render_to_string(template_name, context, request, using=using)
return HttpResponse(content, content_type, status)
def redirect(to, *args, permanent=False, **kwargs):
content_type
None
context
{
10 items
}
request
<WSGIRequest: GET '/account/dashboard/'>
status
None
template_name
"account/dashboard.html"
using
None
website/views.py in dashboard at line 579
In App
'notification_frequency_labels': json.dumps(notification_frequency_labels), # Pass data as JSON
'notification_frequency_data': json.dumps(notification_frequency_data), # Pass data as JSON
'account_updates': account_updates,
}
return render(request, 'account/dashboard.html', context)
@login_required
def profile_view(request):
# Fetch or create profile object
profile, created = ProfilePicture.objects.get_or_create(user=request.user)
current_month
12
current_year
2024
date_joined
datetime.datetime(2024, 11, 30, 12, 27, 31, 659487, tzinfo=datetime.timezone.utc)
last_login
datetime.datetime(2024, 12, 3, 21, 51, 53, 424535, tzinfo=datetime.timezone.utc)
login_frequency
<QuerySet [{'created_at__day': 1, 'count': 1}, {'created_at__day': 3, 'count': 1}]>
profile
None
profile_picture
<ProfilePicture: charles's Profile Picture>
request
<WSGIRequest: GET '/account/dashboard/'>
unread_notifications_count
2
website
<QuerySet from django.db.models.query at 0x7f401e0f08e0>
Called from: django/contrib/auth/decorators.py in _wrapper_view
Hide 2 more frames
django/core/handlers/base.py in _get_response at line 197
django/core/handlers/exception.py in inner at line 55
This is so useful hopefully you are able to get all info so as we get rid of these error
Here is a screenshot to enhance eliminating the error
Here is the views.py