Ho finalmente rilasciato il mio progetto a livello di produzione e improvvisamente ho alcuni problemi che non ho mai dovuto affrontare nella fase di sviluppo.Errore Django - la query di corrispondenza non esiste
Quando gli utenti pubblicano alcune azioni, a volte ho il seguente errore.
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
Ciò che veramente mi frustra è che il progetto funziona bene nell'ambiente locale e, inoltre, l'oggetto di query corrispondente esiste nel database.
Ora sospetto che l'utente stia accedendo al Database quando è riservato ad altri utenti, ma non c'è modo di dimostrare la mia argomentazione né ho alcuna soluzione.
Qualcuno ha avuto questo tipo di problema prima? Qualche suggerimento su come risolvere questo problema?
Grazie mille per il vostro aiuto in anticipo.
MODIFICA: Ho interrogato manualmente il database utilizzando le stesse informazioni recuperate dall'email di errore del server che ho ricevuto. Sono stato in grado di colpire la voce senza alcun problema. Inoltre, sembra che lo stesso comportamento che l'utente ha eseguito non sollevi alcun problema la maggior parte del tempo, ma piuttosto in alcuni casi (che è ancora sconosciuto). In conclusione, sicuramente non è un problema con la voce mancante nel database.
Chiaramente, si tratta di un problema di dati: 'comment = Comment.objects.get (pk = COMMENT_ID)' Verificare l'ID esiste nel database – karthikr
"manage.py sqlall pitone "genererà l'SQL corrispondente ai tuoi modelli. Controlla se corrisponde allo schema SQL del DB. Ad esempio, se si lavora con PostgreSQL, può anche essere un problema di sequenza. In conclusione: puoi portare più informazioni sul tuo ambiente (SQDB, DB, tabella corrispondente in DB e codice in models.py, ...)? – Ricola3D
@ Ricola3D Ciao Ricola, attualmente sto usando MySql DB che lo ospita dall'istanza di Amazon EC2. E sto usando il commento di Django costruito per il momento. Nel frattempo, proverò a eseguire il comando sqlall che hai suggerito. Grazie. –