Python 从django.forms继承模型

Python 从django.forms继承模型,python,django,Python,Django,我使用forms.ModelForm并运行服务器,将模型链接到表单。我得到错误“ModelForm没有指定模型类” 这是我正在使用的代码 class用户表单(forms.ModelForm): password=forms.CharField(widget=forms.PasswordInput()) 类元: 模型=用户 字段=(‘用户名’、‘电子邮件’、‘密码’) 您在Meta类和model属性中犯了一些错误:它是Meta(以大写开头)和model(以小写开头): 它是型号(小写),而不是型号

我使用forms.ModelForm并运行服务器,将模型链接到表单。我得到错误“ModelForm没有指定模型类”

这是我正在使用的代码

class用户表单(forms.ModelForm):
password=forms.CharField(widget=forms.PasswordInput())
类元:
模型=用户
字段=(‘用户名’、‘电子邮件’、‘密码’)

您在
Meta
类和
model
属性中犯了一些错误:它是
Meta
(以大写开头)和
model
(以小写开头):


它是
型号
(小写),而不是
型号
。此外,它是
Meta
(大写),而不是
Meta
。请注意,您需要在
ModelForm
的标准行为上使用
set\u password
来散列密码。您是否尝试过Willem Van Onsem建议的修复方法?如果是这样的话,那可以作为答案发布,尽管这与实际的编程问题关系不大,只是一个语法错误。@bartcubrich:打字错误是肯定的,但是
set\u password
也是一个问题。我在我的视图文件中对密码进行了哈希处理。如果user\u form.is\u valid()和profile\u form.is\u valid():user=user\u form.save()user.set\u password(user.password)user.save(),这将显示在下面的
python中
@NishantKumar:这看起来确实需要在表单中做些什么。例如,Django的
UserCreateForm
也在表单中执行此操作。例如,您可以在
CreateView
UpdateView
等中使用此类表单,而无需更改预定义的视图逻辑。感谢您在模型M中解决了我的错误,实际应使用小写
class UserForm(forms.ModelForm):
    password=forms.CharField(widget=forms.PasswordInput())

    class Meta:
        model = User
        fields = ('username' , 'email' , 'password')
class UserForm(forms.ModelForm):
    password=forms.CharField(widget=forms.PasswordInput())

    def save(self, commit=True):
        user = super().save(commit=False)
        user.set_password(self.cleaned_data['password'])
        if commit:
            user.save()
        return user

    class Meta:
        model = User
        fields = ('username' , 'email' , 'password')