Ошибка значения в / sendrequest / jacob не может назначить «‘jacob'»: «ConnectRequest.receiver» должен быть экземпляром «User»

#django #django-models #django-views #django-templates

#django #django-модели #django-просмотры #django-шаблоны

Вопрос:

я создаю функцию запроса друга, и я получил эту ошибку, это мой models.py для запроса в друзья

 class ConnectRequest(models.Model):
sender = models.ForeignKey(User, on_delete=models.CASCADE, related_name="sender")
receiver = models.ForeignKey(User,on_delete=models.CASCADE, related_name="receiver")
choice=(
    ("Accepted","Accepted"),
    ("Declined","Declined"),
    ("Pending","Pending")
)
status=models.CharField(max_length=10,choices=choice,blank=True)
  

это мой views.py

 def sendrequest(request,receiver):
sender=request.user
connection=ConnectRequest(sender=sender,receiver=receiver,status="Pending")
connection.save()
return redirect("buddylist")
  

Комментарии:

1. какое значение у вас есть в receiver аргументе? поскольку ошибка очевидна: “ConnectRequest.receiver” must be a “User” instance я предполагаю, что у вас есть строка или любая другая вещь, это должен быть User экземпляр

Ответ №1:

Я предполагаю, что вы имеете в виду, что это ваше views.py , а не urls.py

receiver параметром для этой функции просмотра будет просто идентификатор из URL. Это нужно для ПОЛУЧЕНИЯ получателя из базы данных:

 def sendrequest(request,receiver):
    receiver_user = User.objects.get(id=receiver)
    sender=request.user
    connection=ConnectRequest(sender=sender,
        receiver=receiver_user,
        status="Pending"
    )
    connection.save()
    return redirect("buddylist")
  

Комментарии:

1. спасибо, Лорел, я понял вашу точку зрения, но все же я не могу получить желаемый результат

2. Можете ли вы показать свой фактический urls.py . Я хочу посмотреть, где sendrequest определено.

3. github.com/Alphonse-03/codebuddy пожалуйста, проверьте, что здесь более понятно, на самом деле у меня есть модели профилей, и я извлекаю значения из модели профилей