具有继承模型的ModelForm的表单字段

Ald*_*und 13 django django-models django-forms

我有一个抽象模型,定义了一些字段,以及从中继承的其他模型.如果我为这个模型定义一个表单,基本字段没有定义,我不能在表单中使用它.

如果我用字段指定它我会收到此错误:

例外值:为经销商指定的未知字段(created_at,updated_at)

异常位置:C:\ Python27\lib\site-packages\django\forms\models.py in new,line 215

这是我的代码:

class BaseModel(models.Model):
    created_at = models.DateTimeField(default=datetime.now, editable=False)
    updated_at = models.DateTimeField(auto_now=True)
    class Meta:
        abstract = True

class Reseller(BaseModel): name = models.CharField(_("name"), max_length=255, unique=True)

class ResellerForm(forms.ModelForm): class Meta: model = Reseller fields = ('name','created_at','updated_at')

Run Code Online (Sandbox Code Playgroud)

UPD

它可以通过这三个类清晰地重现新的空项目.它在表单导入失败

 from jjj.forms import ResellerForm
Traceback (most recent call last):
  File "", line 1, in 
  File "C:\Users\ShapeR\PycharmProjects\djt\jjj\forms.py", line 4, in 
    class ResellerForm(forms.ModelForm):
  File "C:\Python27\lib\site-packages\django\forms\models.py", line 214, in __new__
    raise FieldError(message)
FieldError: Unknown field(s) (created_at, updated_at) specified for Reseller

DTi*_*ing 15

created_at = models.DateTimeField(default=datetime.now, editable=False)
updated_at = models.DateTimeField(auto_now=True)
Run Code Online (Sandbox Code Playgroud)

http://docs.djangoproject.com/en/dev/ref/models/fields/#editable

Field.editable

如果为False,则该字段将不会在管理员中或通过从模型类自动生成的表单中进行编辑.默认为True.

注意

如当前实现的那样,将auto_now或auto_now_add设置为True将导致该字段具有editable = False和blank = True set.

  • 是的,这是一个问题.从文档中我不清楚,不可编辑等于根本没有呈现/可访问. (4认同)
  • 如果你想显示字段,你也可以解决这个问题吗?我尝试添加editable = False而auto_now设置为True并得到相同的错误..你会在表单之外和模板上下文中添加它吗? (2认同)