Django modelforms?
Я получаю ошибку в django "ValueError at /register/ ModelForm не указан класс модели." Экран:Click
Файлы: views.py
>def register(request):
if request.method == "POST":
user_form = UserRegistrationForm(request.POST)
if user_form.is_valid():
new_user = user_form.save(commit= False)
new_user.set_password = (user_form.cleaned_data["Password"])
new_user.save()
return render(request, "main/account/register.done.html", {"new_user":new_user})
else:
user_form = UserCreationForm()
return render(request, "main/account/register.html", {"user_form": user_form},)
forms.py
class User_form(forms.ModelForm):
class Meta():
model = User
fields = ["username", "email",]
username = forms.CharField(max_length=150 , required=True,),
email = forms.CharField(max_length= 20, required=True,),
def clean_password2(self):
cd =self.cleaned_data
if cd['password'] != ["password2"]:
raise forms.ValidationError("Password dont match")
return cd["password2"]
register.html
{% block title %}Create an account{% endblock %}
{% block content %}
<h1>Create an account</h1>
<p>Please, sign up using the following form:</p>
<form action="." method="POST">
{{ user_form.as_p }}
{% csrf_token %}
<p><input type="submit" value="Create my account"></p>
</form>
{% endblock %}
Когда вы используете в своей форме модель Define model вам нужны поля и dosent needed Define alone i I think your form code like this:
class User_form(forms.ModelForm):
class Meta():
model = User
fields = ['username', 'email']
и ваша модель должна выглядеть следующим образом: models.py:
from django.db import models
from django.contrib.auth.models import User
# Create your models here.
class UserProfileInfo(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
#additional
Примечание:Источник https://docs.djangoproject.com/en/3.2/topics/forms/modelforms/ и https://python.tutorialink.com/django-modelform-has-no-model-class-specified-although-model-in-meta-class-is-set-to-a-model/