[Django]-Django error โ€“ matching query does not exist

146๐Ÿ‘

โœ…

your line raising the error is here:

comment = Comment.objects.get(pk=comment_id)

you try to access a non-existing comment.

from django.shortcuts import get_object_or_404

comment = get_object_or_404(Comment, pk=comment_id)

Instead of having an error on your server, your user will get a 404 meaning that he tries to access a non existing resource.

Ok up to here I suppose you are aware of this.

Some users (and Iโ€™m part of them) let tabs running for long time, if users are authorized to delete data, it may happens. A 404 error may be a better error to handle a deleted resource error than sending an email to the admin.

Other users go to addresses from their history, (same if data have been deleted since it may happens).

๐Ÿ‘คchristophe31

180๐Ÿ‘

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
๐Ÿ‘คDracontis

36๐Ÿ‘

You can use this:

comment = Comment.objects.filter(pk=comment_id)
๐Ÿ‘คKlang Wutcharin

18๐Ÿ‘

You may try this way. just use a function to get your object

def get_object(self, id):
    try:
        return Comment.objects.get(pk=id)
    except Comment.DoesNotExist:
        return False
๐Ÿ‘คMd Mehedi Hasan

0๐Ÿ‘

I think the problem is that there is some data that has been passed in your dev server that wouldnโ€™t be migrated to your Production server.

The easiest thing to do will be to locate those dependencies on your production database and provide them

๐Ÿ‘คLeodarkseid

-2๐Ÿ‘

comment = Comment.objects.get(pk=comment_id) if Comment.objects.filter(pk=comment_id).exists() else None

-3๐Ÿ‘

Try this one

comment, created = Comment.objects.get_or_create(pk=comment_id)
๐Ÿ‘คAkash Darji

Leave a comment