Я наконец выпустил свой проект на производственный уровень, и внезапно у меня возникли проблемы, с которыми мне никогда не приходилось сталкиваться на этапе разработки.
Когда пользователи публикуют какие-то действия, я иногда получаю следующую ошибку.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/django/core/handlers/base.py", line 111, in get_response
response = callback(request, *callback_args, **callback_kwargs)
File "home/ubuntu/server/opineer/comments/views.py", line 103, in comment_expand
comment = Comment.objects.get(pk=comment_id)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/manager.py", line 131, in get
return self.get_query_set().get(*args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/django/db/models/query.py", line 366, in get
% self.model._meta.object_name)
DoesNotExist: Comment matching query does not exist
Что меня действительно расстраивает, так это то, что проект отлично работает в локальной среде и, кроме того, соответствующий объект запроса ДЕЙСТВИТЕЛЬНО существует в базе данных.
Теперь я подозреваю, что пользователь получает доступ к базе данных, когда она зарезервирована для других пользователей, но нет способа доказать мой аргумент, и у меня нет никакого решения для него.
У кого-нибудь раньше была такая проблема? Есть предложения по решению этой проблемы?
Заранее большое спасибо за вашу помощь.
РЕДАКТИРОВАТЬ: я вручную запросил базу данных, используя ту же информацию, что и полученное мной сообщение об ошибке сервера. Я смог попасть в запись без каких-либо проблем. Более того, похоже, что точно такое же поведение, которое совершил пользователь, большую часть времени не вызывает никаких проблем, а скорее в некоторых (что пока неизвестно) случаях. В заключение, это определенно не проблема с отсутствующей записью в базе данных.
comment = Comment.objects.get(pk=comment_id)
убедитесь, что идентификатор существует в базе данных