MultipleObjectsReturned - get() вернула более одного пользователя - вернулось 2
views.py
def message(request):
username = request.GET.get('username')
user = User.objects.get()
return render(request,'member/message.html',{
'username':username,
'user' : user
})
if User.objects.filter(name=user).exists():
return redirect('/'+user+'/?username='+username)
else:
new_user = User.objects.create(name=user)
new_user.save()
return redirect('/'+user+'/?username='+username)
def send(request):
message = request.POST['message']
username = request.POST['username']
new_message = Message.objects.create(value=message,user=username)
new_message.save()
return HttpResponse('Message sent successfully')
def getMessages(request,user):
user = User.objects.get()
messages = Message.objects.filter()
return JsonResponse({"messages":list(messages.values())})
models.py
class Message(models.Model):
value = models.CharField(max_length=10000000)
date = models.DateTimeField(default=datetime.now, blank=True)
user = models.CharField(max_length=1000000)
Является ли намерением вашего метода getMessages(request, user)
получить сообщения для данного пользователя?
Если да, то измените его на следующее (вы не применяете фильтрацию, поскольку у вас нет аргументов в вызове get()
):
def getMessages(request, user):
user = User.objects.get(user=user)
messages = Message.objects.filter()
return JsonResponse({"messages":list(messages.values())})
Вероятно, вам вообще не нужно запрашивать модель User, поскольку ваш объект Message не имеет внешнего ключа к таблице User, это просто поле CharField, поэтому я предполагаю, что оно просто хранит имя пользователя.
Если цель этого метода - просто получить сообщения для данного пользователя, то это должно сработать:
def getMessages(request, user):
messages = Message.objects.filter(user=user)
return JsonResponse({"messages":list(messages.values())})