Поле заполнено, но все равно получаем ValidationError это поле необходимо в
Я хочу создать пользователя с помощью User.objects.create_user
и использую для этого некоторые поля формы Utilisateurs
. Поле изображения и поле имени пользователя из этой формы также используются для заполнения модели UserProfile
.
В представлениях py
def sign_in(request):
form=Utilisateur(request.GET)
if request.method=="POST":
form=Utilisateur(request.POST)
if form.is_valid():
User.objects.create_user(username=form.cleaned_data["username"],
password=form.cleaned_data["password"],
first_name=form.cleaned_data["first_name"],
last_name=form.cleaned_data["last_name"],
email=form.cleaned_data["email"]
)
UserProfile.objects.create(username=form.cleaned_data["username"],profile_img=form.cleaned_data["profile_img"])
return redirect("home")
else:
print(form.errors.as_data())
context={"form":form}
return render(request,'signin.html',context)
В models.py
class UserProfile(models.Model):
username=models.CharField(max_length=50)
profile_img=models.ImageField(default="images/logo.png", upload_to="images/",blank=True, null=True)
date = models.DateField(default=django.utils.timezone.now())
В файле forms.py
class Utilisateur(forms.Form):
first_name=forms.CharField(min_length=4,max_length=15,label="Nom",widget=(forms.TextInput(attrs={"class":"userclass"})))
last_name = forms.CharField(min_length=4, max_length=15,label="Prenom",widget=(forms.TextInput(attrs={"class":"userclass"})))
username=forms.CharField(min_length=4, max_length=15,label="Nom d'uttilisateur",widget=(forms.TextInput(attrs={"class":"userclass"})))
email=forms.EmailField(label="Email",widget=(forms.EmailInput(attrs={"class":"userclass"})))
password=forms.CharField(label="Mot de passe",widget=(forms.PasswordInput(attrs={"class":"userclass"})))
profile_img = forms.ImageField(label="Image de Profile")
class ProfileForm(forms.Form):
profile_img = forms.ImageField(label="Image de Profile", required=False)
Выведено сообщение об ошибке:
{'profile_img': [ValidationError(['Это поле обязательно для заполнения.'])]}