Я хочу создать расширенную модель пользователя. Я создал модель профиля с отношением один к одному с моделью пользователя django по умолчанию. Проблема в том, что когда я создаю экземпляр профиля и включаю поле «Пользователь», это вызывает у меня исключение (NOT NULL ограничение: portal_profile.user_id). Почему?
view.py
def register(request):
if request.method == 'POST':
user_form= UserCreationForm(request.POST)
profile_form = ProfileForm(request.POST, request.FILES)
if user_form.is_valid() and profile_form.is_valid():
user_form.save()
profile_form.save(commit=False)
profile_form.user=user_form
profile_form.save()
model.py
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE, unique=True)
img = models.ImageField(null=True, upload_to='userImg')
country = models.CharField(null=True, max_length=50)
city = models.CharField(null=True, max_length=50)
email=models.EmailField(unique=True)
forms.py
class ProfileForm(ModelForm):
img=forms.ImageField(required=False)
class Meta:
model = Profile
fields=['img', 'country', 'city', 'email']
register.html
{% if UserForm.errors or ProfileFrom.errros %}
<p> Error </p>
{% endif %}
{{ UserForm }}
{{ ProfileForm }}