我終於將我的項目發佈到生產級別,突然間我有一些問題在開發階段從來沒有處理過。Django錯誤匹配查詢不存在
當用戶發佈一些操作時,我有時會得到以下錯誤。
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.objects.get(PK = COMMENT_ID)'驗證數據庫 – karthikr
「蟒蛇manage.py sqlall存在的ID 「將生成對應於您的模型的SQL。檢查它是否對應於數據庫模式SQL。例如,如果使用PostgreSQL,它也可能是一個序列問題。總之:您能否提供更多關於您的環境的信息(SQDB,DB,DB中的對應表和models.py中的代碼,...)? – Ricola3D
@ Ricola3D Hello Ricola,我目前使用從Amazon EC2實例託管它的MySql DB。我暫時使用內置的Django Comment。與此同時,我會嘗試運行您建議的sqlall命令。謝謝。 –