#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 пожалуйста, проверьте, что здесь более понятно, на самом деле у меня есть модели профилей, и я извлекаю значения из модели профилей