Случайные 500 ошибок сервера на веб-сайте Django 6 после запускаPython

Программы на Python
Ответить
Anonymous
 Случайные 500 ошибок сервера на веб-сайте Django 6 после запуска

Сообщение Anonymous »

Я впервые создал небольшой и легкий веб-сайт, используя Django 6.0 с Python 3.12. Есть одна страница, которая извлекает данные из базы данных, и на этой странице появляются случайные 500 внутренних ошибок сервера. Обновление страницы обычно отображает ее так, как предполагалось. Я не могу воссоздать эту ошибку в своей среде разработки; это происходит только в моей производственной среде.
Ошибка, которую я получаю в журналах, выглядит следующим образом:

Код: Выделить всё

ERROR 2026-01-13 11:34:37,581 log 791 124526765520576 Internal Server Error:  /menu/
Traceback (most recent call last):
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/core/handlers/base.py", line 198, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/menu/views.py", line 25, in menu
return render(request, "menu/menu.html", context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/shortcuts.py", line 25, in render
content = loader.render_to_string(template_name, context, request, using=using)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/loader.py", line 62, in render_to_string
return template.render(context, request)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/backends/django.py", line 107, in render
return self.template.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 174, in render
return self._render(context)
^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 166, in _render
return self.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1091, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1052, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 160, in render
return compiled_parent._render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 166, in _render
return self.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1091, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1052, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/loader_tags.py", line 66, in render
result = block.nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1091, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1052, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 249, in render
nodelist.append(node.render_annotated(context))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1052, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/defaulttags.py", line 333,  in render
return nodelist.render(context)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1091, in render
return SafeString("".join([node.render_annotated(context) for node in self]))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1052, in render_annotated
return self.render(context)
^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1156, in render
return render_value_in_context(output, context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/template/base.py", line 1130, in render_value_in_context
value = localize(value, use_l10n=context.use_l10n)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/utils/formats.py", line 208, in localize
return number_format(value, use_l10n=use_l10n)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/utils/formats.py", line 182, in number_format
return numberformat.format(
^^^^^^^^^^^^^^^^^^^^
File "/var/www/juliasempanadassite/venv/lib/python3.12/site-packages/django/utils/numberformat.py", line 28, in format
if number is None or number == "":
^^^^^^^^^^^^
File "", line 119, in __instancecheck__
TypeError: _abc_impl is set to a wrong type
Мой view.py выглядит так:

Код: Выделить всё

from django.shortcuts import render

from .models import Category, MenuItem, Highlight, Offer

def index(request):
highlights = Highlight.objects.order_by("sort_order")
offers = Offer.objects.order_by("sort_order")
context = {"highlights": highlights, "offers": offers}
return render(request, "menu/index.html", context)

def about(request):
context = {}
return render(request, "menu/about.html", context)

def menu(request):
categories = Category.objects.order_by("sort_order")
menu_items = MenuItem.objects.order_by("category_id", "sort_order")
context = {"categories": categories, "menu_items": menu_items}

return render(request, "menu/menu.html", context)
Связанный шаблон:

Код: Выделить всё

{% extends "menu/base.html"%}
{% load static %}

{% block content %}



[img]{% static [/img]





[url=/]

Julia's Empanadas

[/url]


 



[list]
[*]
[url=/]Home [/url]

[*]
[url=/menu/]Menu (current)  [/url]

[*]
[url=/about/]About[/url]

[/list]













Our Menu


[list]
[*]All
{% for category in categories %}
[*]{{ category.name }}
{% endfor %}
[/list]


{% for item in menu_items %}




{% with '/menu/images/'|add:item.image as image_static %}
[img]{% static image_static %}[/img]
{% endwith %}


{{ item.name }}


{{ item.description }}



{% if item.category.price_for_all == True %}
${{ item.category.price }}
{% else %}
${{ item.price }}
{% endif %}






{% endfor %}







Модели выглядят так:

Код: Выделить всё

from django.db import models

class Category(models.Model):
name = models.CharField(max_length=200)
short_name = models.CharField(max_length=20, null=True)
price = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True)
price_for_all = models.BooleanField(default=False)
sort_order = models.IntegerField(default=1)

def __str__(self):
return self.name

class MenuItem(models.Model):
category = models.ForeignKey(Category, on_delete=models.SET_NULL, null=True)
name = models.CharField(max_length=200)
description = models.TextField(blank=True, null=True)
image = models.CharField(max_length=255, blank=True, null=True)
price = models.DecimalField(max_digits=5, decimal_places=2, blank=True, null=True)
sort_order = models.IntegerField(default=1)

def __str__(self):
return self.name

class Highlight(models.Model):
title = models.CharField(max_length=50)
blurb = models.TextField()
link = models.CharField(max_length=50, blank=True, null=True)
link_text = models.CharField(max_length=30, blank=True, null=True)
sort_order = models.IntegerField(default=1)

def __str__(self):
return self.title

class Offer(models.Model):
title = models.CharField(max_length=50)
percent_off = models.IntegerField()
image = models.CharField(max_length=255, blank=True, null=True)
sort_order = models.IntegerField(default=1)

def __str__(self):
return self.title
Представление, в котором возникают случайные 500 ошибок, — это меню.
Как решить эту проблему с этой конкретной страницей сайта?

Подробнее здесь: https://stackoverflow.com/questions/798 ... going-live
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»