Django ModelForm:为字段添加别名

naf*_*afe 2 python django google-app-engine django-forms

我有一个(GoogleAppEngine)Django ModelForm:

class A(db.Model):
  a = db.StringProperty()

class MyAForm(djangoforms.ModelForm):
  class Meta:
    model = A
Run Code Online (Sandbox Code Playgroud)

这将创建一个具有一个字符串字段的表单a.在我的表格中,我想称之为别的,比方说b.所以我想要一个带有字段b的表单,当表单被POST时,我们创建一个新的A实体,其a属性填充-value b.

有没有一个简洁的方法来做这个管道?

(ps我不想改变底层模型)

Dan*_*man 5

当你说你想在你的表单上"打电话"字段时,你的意思并不清楚.你的意思是标签吗?这很容易做到:

class MyAForm(djangoforms.ModelForm):
  a = forms.CharField(label='b')
  class Meta:
    model = A
Run Code Online (Sandbox Code Playgroud)

如果要更改基础HTML ID,可以通过窗口小部件执行此操作:

  a = forms.CharField(widget=forms.TextInput(attrs={'id':'b'}))
Run Code Online (Sandbox Code Playgroud)

我认为不可能改变实际字段的HTML名称,但我想不出你想要这样做的任何理由.

  • @Richard:这就是前缀的形式:http://docs.djangoproject.com/en/1.1/ref/forms/api/#prefixes-for-forms (3认同)