Django error - matching query does not exist

Chris P picture Chris P · Jul 23, 2013 · Viewed 166k times · Source

I finally released my project to the production level and suddenly I have some issues I never had to deal with in the development phase.

When the users posts some actions, I sometimes get the following error.

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

What really frustrates me is that the project works fine in the local environment and furthermore, the matching query object DOES exist in the Database.

Now I am suspecting that the user is accessing the Database when it's reserved to other users, but there's no way to prove my argument nor I have any solution to it.

Does anybody had this kind of issue before? Any suggestions on how to resolve this issue?

Thank you very much for your help in advance.

EDIT: I have manually queried the database using the same information retrieved from the server error email I received. I was able to hit the entry without any issue. Furthermore, it seems like the exact same behavior the user performed does not raise any issue most of the time, but rather in some (which is yet unknown) cases. In conclusion, it definitely is not an issue with the missing entry in the database.

Answer

Dracontis picture Dracontis · Jun 7, 2015

Maybe you have no Comments record with such primary key, then you should use this code:

try:
    comment = Comment.objects.get(pk=comment_id)
except Comment.DoesNotExist:
    comment = None