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/

Вернуться на верх