Передача аутентифицированного пользователя в модель представления в Django

Я создаю модель профиля, которой необходимо передавать текущего аутентифицированного пользователя в качестве внешнего ключа. Если я не исключаю поле user, я могу выбирать из всех пользователей, но мне нужно скрыть это поле и передавать текущего аутентифицированного пользователя автоматически при отправке формы. Дополнительные поля, такие как имя, фамилия, дата рождения и т.д. будут добавлены в модель пользователем. Я не могу понять, как добавить пользователя в модель формы. То, что у меня есть в моем файле views.py (ниже) - это самое близкое, что я смог получить.

Модели

class Profile(models.Model):
    user = models.ForeignKey(
        get_user_model(),
        on_delete = models.CASCADE
    )
    first_name = models.CharField(max_length = 200, blank = True)
    last_name = models.CharField(max_length = 200, blank = True)
    dob = models.DateField(blank = True)
    profile_photo = models.ImageField(upload_to = 'profile_photos/', blank = True)

    def __str__(self):
        return self.first_name

    def get_absolute_url(self):
        return reverse('home')

Виды

class ProfileCreateView(LoginRequiredMixin, generic.CreateView):

    model = Profile
    template_name = 'account/profile_creation.html'
    fields = ['first_name', 'last_name', 'dob', 'profile_photo']
    login_url = 'account_login'

    def form_valid(self, form):
        user = self.request.user
        self.object = form.save(commit = False)
        self.object.save()
        return super(ProfileCreateView, self).form_valid(form)

Формы

class CustomProfileForm(forms.Form):

    class Meta:

        model = Profile

Ошибка, которую я получаю:

null значение в столбце "user_id" нарушает ограничение not-null ПОДРОБНАЯ ИНФОРМАЦИЯ: Неудачная строка содержит (16, имя, фамилия, дата рождения, , null).

Вернуться на верх