Почему я не могу сохранить данные формы в базу данных модели?

Когда я пытаюсь сохранить информацию, введенную в форму, я получаю ValueError:

Cannot assign "<class 'auctions.models.User'>": "Listing.user" must be a "User" instance.

Я думаю, что это может быть связано с тем, что поле модели Listing.user является внешним ключом между Listing моделью и User моделью.

Даже когда я меняю Listing.user = User на Listing.user = User() (включает скобки), он возвращает ValueError:

save() prohibited to prevent data loss due to unsaved related object 'user'.

Как мне добавить, кто является текущим пользователем в поле модели Listing.user?

models.py:

class User(AbstractUser):
    pass


class Listing(models.Model):
    ...
    user = models.ForeignKey(User, on_delete=models.SET_NULL, null=True)

views.py:

def save_new(request):
    if request.method == 'POST':
        form = NewListing(request.POST)
        if form.is_valid():
            obj = Listing()
            ...
            obj.user = User # this returned the first ValueError
            # obj.user = User() - this returned the second ValueError
            obj.save()
            return HttpResponseRedirect('/')

можете попробовать это

obj.user = User.objects.get(pk=request.user.id)
Вернуться на верх