【问题标题】:in my django project i get a 'ModelFormOptions' object has no attribute 'concrete_model' error在我的 django 项目中,我得到一个“ModelFormOptions”对象没有属性“concrete_model”错误
【发布时间】:2019-07-05 01:56:09
【问题描述】:

我为我的 django rest 项目添加了一个表单。但是,我不断收到“ModelFormOptions”对象没有属性“concrete_model”错误。

在我的用户类中,我添加了一个新字段“密码”,并尝试创建一个表单。并在其上调用序列化程序。

我的模特:

class User(models.Model):
gender = models.CharField(max_length=10, blank=False, choices=GENDER)
first_name = models.CharField(max_length=20, blank=False)
last_name = models.CharField(max_length=20, blank=False)
position = models.CharField(max_length=50, blank=True)
birthday = models.DateField(auto_created=False, blank=False)
email = models.EmailField(max_length=50)
phone = models.CharField(max_length=15, blank=False)
password = models.CharField(max_length=100, default='something')

表格

class UserForm(forms.ModelForm):
    password = forms.CharField(widget=forms.PasswordInput)

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

序列化器

class UserSerializer(serializers.ModelSerializer):
class Meta:
    model = UserForm
    fields = '__all__'

这是发生的错误:

/users/ 处的 AttributeError 'ModelFormOptions' 对象没有属性 'concrete_model'

【问题讨论】:

    标签: django django-models django-forms django-rest-framework


    【解决方案1】:

    您的UserSerializer 需要引用您的模型,而不是表单:

    class UserSerializer(serializers.ModelSerializer):
        class Meta:
            model = User
            fields = '__all__'
    

    【讨论】:

    • 我面临着类似的问题(尽管场景不是确切的问题)。你能帮我this吗?
    猜你喜欢
    • 1970-01-01
    • 2020-07-08
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 2022-01-24
    • 2021-04-07
    • 1970-01-01
    • 2022-01-13
    相关资源
    最近更新 更多