Ich habe das folgende Problem, meine Datenbank ist nicht leer und hat den Datensatz, den ich brauche. Aber wenn ich die DB abfrage, sagt es, dass es kein solches Objekt gibt, das der gegebenen Frage entspricht. Ich frage die Datenbank aus einem Websocket mit Django-Kanäle und meine Datenbank ist PostgreSQL.Django kein Objekt entspricht der angegebenen Abfrage, aber es sollte
Ich bin mir bewusst, dass es noch andere Fragen zu diesem Thema sind, und ich sah in ihnen, aber sie sind alle über leere Datenbank oder falsche URL Wegschnecke, die nicht mein Fall ist, und hilft mir nicht mit irgendetwas
Hier wird der entsprechende Code:
@channel_session_user_from_http
def ws_receive(message):
username = message.user.username
print(username)
text = json.loads(message['text']).get('text')
# Use my algorithm here
score = score_argument.get_rating(text)
# find the room with our users
current_room = get_object_or_404(PairUsers, Q(username_a=username) | Q(username_b=username))
# current_room = PairUsers.objects.filter(Q(username_a=username) | Q(username_b=username)).first()
# check which user you got and send the message to the other
if current_room.username_b == username:
current_room.score_b = score
other_channel = Channel(current_room.reply_channel_a)
message.reply_channel.send({'text': text})
other_channel.send({'text': text})
else:
current_room.score_a = score
other_channel = Channel(current_room.reply_channel_b)
message.reply_channel.send({'text': text})
other_channel.send({'text': text})
andere Sache, die mir aufgefallen ist, dass der Druck (Benutzername) nichts drucken sie es einfach diese Zeile überspringt. Ich benutzen message.user.username in verschiedener Funktion, die so funktioniert, ich bin sicher, es sollte die Benutzername
Traceback zurück:
Traceback (most recent call last):
File "C:\Program Files (x86)\Python35\lib\site-packages\channels\worker.py", line 119, in run
consumer(message, **kwargs)
File "C:\Program Files (x86)\Python35\lib\site-packages\channels\sessions.py", line 180, in inner
result = func(message, *args, **kwargs)
File "C:\Program Files (x86)\Python35\lib\site-packages\channels\auth.py", line 73, in inner
return func(message, *args, **kwargs)
File "C:\Program Files (x86)\Python35\lib\site-packages\channels\sessions.py", line 64, in inner
return func(message, *args, **kwargs)
File "C:\Program Files (x86)\Python35\lib\site-packages\channels\auth.py", line 89, in inner
return func(message, *args, **kwargs)
File "C:\Users\nithe\Desktop\debateit\play\consumers.py", line 51, in ws_receive
current_room = get_object_or_404(PairUsers, Q(username_a=username) | Q(username_b=username))
File "C:\Program Files (x86)\Python35\lib\site-packages\django\shortcuts.py", line 93, in get_object_or_404
raise Http404('No %s matches the given query.' % queryset.model._meta.object_name)
django.http.response.Http404: No PairUsers matches the given query.
Können Sie die Traceback-Funktion buchen? –
@ RaphaëlGomès done – nitheism