W końcu opublikowałem swój projekt na poziomie produkcji i nagle mam pewne problemy, z którymi nigdy nie miałem do czynienia w fazie rozwoju.Błąd Django - pasujące zapytanie nie istnieje
Kiedy użytkownicy publikują niektóre akcje, czasami pojawia się następujący błąd.
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
Co naprawdę mnie irytuje to, że projekt działa dobrze w środowisku lokalnym, a ponadto przedmiotem zapytania dopasowanie NIE istnieje w bazie danych.
Teraz podejrzewam, że użytkownik uzyskuje dostęp do bazy danych, gdy jest zarezerwowany dla innych użytkowników, ale nie ma sposobu na udowodnienie mojej argumentacji ani nie mam żadnego rozwiązania.
Czy ktoś wcześniej miał takie problemy? Wszelkie sugestie, jak rozwiązać ten problem?
Dziękuję bardzo za pomoc z góry.
EDYCJA: Ręcznie przeszukałem bazę danych, używając tych samych informacji pobranych z otrzymanego przeze mnie komunikatu o błędzie serwera. Udało mi się trafić bez żadnych problemów. Co więcej, wydaje się, że dokładnie to samo zachowanie, które wykonał użytkownik, nie wywołuje większości problemów przez większość czasu, ale raczej w niektórych (które jeszcze nie są znane). Podsumowując, zdecydowanie nie jest to problem z brakującym wpisem do bazy danych.
Oczywiście, jest to kwestia danych: 'comment = Comment.objects.get (pk = comment_id)' zweryfikować identyfikator istnieje w „python manage.py sqlall bazie – karthikr
"wygeneruje kod SQL odpowiadający twoim modelom. Sprawdź, czy odpowiada on schematom bazy danych SQL. W przypadku pracy z PostgreSQL na przykład, może to być również kwestia kolejności. Podsumowując: można przynieść więcej informacji o środowisku (SQDB dB, co odpowiada tabeli w DB i kod w models.py, ...)? – Ricola3D
@ Ricola3D Witaj Ricola, obecnie używam MySql DB hostując go z instancji Amazon EC2. I na razie używam wbudowanego komentarza Django. W międzyczasie spróbuję uruchomić polecenie sqlall, które zasugerowałeś. Dziękuję Ci. –