Django form.is_valid возвращает False, когда request.POST содержит данные из двух форм
Я использую предоставленную Django модель пользователя и вместе с ней я также создал вторую модель по имени Account, в которой я храню изображение профиля пользователя и его имя.
Все эти данные представлены в одной форме в файле HTML
, и обе формы обрабатываются в одной функции просмотра.
Вот мой файл models.py,
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class Account(models.Model):
user = models.OneToOneField(User, null=True, on_delete=models.CASCADE)
name = models.CharField(max_length=255, null=True)
profile_pic = models.ImageField(null=True, blank=True)
ratings = models.FloatField(default=1000)
date_joined = models.DateTimeField(auto_now_add=True, null=True)
Это мой forms.py
файл,
from django.forms import ModelForm
from django.contrib.auth.forms import UserCreationForm
from django.contrib.auth.models import User
from django import forms
from .models import Account
class UserForm(UserCreationForm):
class Meta:
model = User
fields = ['username', 'email', 'password1', 'password2']
class AccountForm(ModelForm):
class Meta:
model = Account
fields = ['name', 'profile_pic']
Вот полный файл шаблона register.html
,
Это мой views.py function
, где команда form.is_valid()
не работает, из-за чего я не могу сохранить данные пользователя.
def register(request):
form = UserForm()
account_form = AccountForm()
if request.method == "POST":
print(request.POST)
form = UserForm(request.POST, prefix="form")
if form.is_valid():
user = form.save()
account_form = AccountForm(request.POST, request.FILES, instance=user, prefix="account_form")
if account_form.is_valid():
account_form.save()
context = {"account_form": account_form, "form": form}
return render(request, 'user/register.html', context)
Кроме того, если необходимо, это файл register.js
,