GOOGLE ADS

понедельник, 25 апреля 2022 г.

Django не может сохранить экземпляр профиля пользователя во время сохранения форм

я получаю эту ошибку

Невозможно назначить "<QuerySet [<UserProfile: объект UserProfile (131)>]>": "BlogComment.userprofile" должен быть экземпляром "UserProfile".

при сохранении моей формы.

Вот мой код:

if request.method == "POST":
if comment_form.is_valid():
isinstance = comment_form.save(commit=False)
name = request.POST['name']
email = request.POST['email']
if request.user.is_authenticated:
user_profile = UserProfile.objects.filter(user=request.user)
isinstance.blog = blog
isinstance.user = request.user
isinstance.name = name
isinstance.email = email
isinstance.userprofile = user_profile
isinstance.save()

models.py

class BlogComment(models.Model):
userprofile = models.ForeignKey(UserProfile,on_delete=models.CASCADE,null=True,blank=True)
#others fields....

В моих моделях у меня есть внешний ключ userprofile, поэтому я пытаюсь сохранить этот экземпляр следующим образом:

isinstance.userprofile = user_profile

Где я ошибаюсь? В чем моя ошибка?

Я использую этот вызов для получения текущего профиля пользователя:

user_profile = UserProfile.objects.filter(user=request.user)


Решение проблемы

Эта переменная:

user_profile = UserProfile.objects.filter(user=request.user)

кажется, весь QuerySet. Это должен быть только один объект. Как это:

user_profile = UserProfile.objects.get(user=request.user)

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

Отправить комментарий

Laravel Datatable addColumn returns ID of one record only

Я пытаюсь использовать Yajra Datatable для интеграции DataTable на свой веб-сайт. Я смог отобразить таблицу, но столкнулся с проблемой. В по...