Передача аутентифицированного пользователя в модель представления в 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).