Finalmente lancei meu projeto para o nível de produção e de repente tenho alguns problemas que nunca tive que lidar na fase de desenvolvimento.
Quando os usuários postam algumas ações, às vezes recebo o seguinte erro.
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
O que realmente me frustra é que o projeto funciona bem no ambiente local e, além disso, o objeto de consulta correspondente EXISTE no Banco de Dados.
Agora estou suspeitando que o usuário está acessando o Banco de Dados quando ele está reservado para outros usuários, mas não tenho como provar meu argumento nem tenho solução para ele.
Alguém já teve esse tipo de problema antes? Alguma sugestão sobre como resolver este problema?
Muito obrigado pela sua ajuda com antecedência.
EDIT: Eu consultei manualmente o banco de dados usando as mesmas informações recuperadas do e-mail de erro do servidor que recebi. Consegui acertar a entrada sem nenhum problema. Além disso, parece que o mesmo comportamento que o usuário realizou não levanta nenhum problema na maioria das vezes, mas em alguns casos (ainda desconhecidos). Em conclusão, definitivamente não é um problema com a entrada ausente no banco de dados.
comment = Comment.objects.get(pk=comment_id)
verifique se a id existe no banco de dados