Ошибка django (ВНЕШНИЙ IP) - PullRequest
3 голосов
/ 21 мая 2011

Я получаю уведомления каждый раз, когда вводим несуществующий адрес.

Traceback (последний вызов был последним): Файл "/ home / user / opt / local / django / core/handlers/base.py ", строка 100, в файле get_response" /web/blog/views.py ", строка 33, в файле поста" /home/user/local/django/db/models/manager.py ",строка 132, в файле get "/home/user/opt/local/django/db/models/query.py", строка 347, в файле get DoesNotExist: запрос сопоставления записей не существует.

как это решить

Ответы [ 4 ]

6 голосов
/ 21 мая 2011

Измените ваш запрос, чтобы использовать get_object_or_404, или перехватите исключение YourModel.DoesNotExist (3-й абзац), когда вы выполняете поиск, и поднимите Http404 исключение.Когда вы не перехватываете исключение DoesNotExist, представление вызывает ошибку 500.Как побочный эффект, это отправляет электронное сообщение об исключении на ADMINS, определив его settings.py.

Пример обоих случаев:

from django.shortcuts import get_object_or_404

post_id = 1
post = get_object_or_404(Post, id=post_id)

# or catch the exception and do something with it

from django.http import Http404
try:
    post = Post.objects.get(id=post_id)
except Post.DoesNotExist:
    # id doesnt exist... do extra things here
    raise Http404
1 голос
/ 21 мая 2011

используйте get_object_or_404 в запросе, см. Документацию de для получения дополнительной информации.

http://docs.djangoproject.com/en/1.3/topics/http/shortcuts/#get-object-or-404

1 голос
/ 21 мая 2011

Произошла ошибка, поскольку ваш запрос get не соответствует ни одной записи.Если вы хотите выбросить страницу 404 в таком случае, то sdolan уже предоставил вам совет, как это сделать.Однако, если вы хотите принять некоторые разумные значения по умолчанию в случае, если запрос не может извлечь какие-либо совпадающие записи, вы можете заключить вызов в get вокруг блока try и catch.Например:

try:
    post = Post.object.get(pk=id)
except Post.DoesNotExist:
    post = None
    # Probably use some sensible defaults, or do something else
0 голосов
/ 21 мая 2011

Я полагаю, что основная проблема в вашем файле просмотра, где вы работаете с объектом запроса ответа http. Проверьте, что все настройки являются точными в settings.py, также используйте try кроме block для более точного поиска ошибки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...