我有一个(GoogleAppEngine)Django ModelForm:
class A(db.Model):
a = db.StringProperty()
class MyAForm(djangoforms.ModelForm):
class Meta:
model = A
这会创建一个包含一个字符串字段a
的表单。在我的表格中,我想称之为别的,比如b
。所以我想要一个带有b
字段的表单,当表单被POST时,我们创建一个新的A实体,a
属性填充b
- 值。
有没有一个简洁的方法来做这个管道?
(p.s。我不想改变基础模型)
答案 0 :(得分:5)
当你说你想在你的表单上“打电话”字段时,你的意思并不清楚。你的意思是标签吗?这很容易做到:
class MyAForm(djangoforms.ModelForm):
a = forms.CharField(label='b')
class Meta:
model = A
如果要更改基础HTML ID,可以通过窗口小部件执行此操作:
a = forms.CharField(widget=forms.TextInput(attrs={'id':'b'}))
我认为不可能更改实际字段的HTML名称,但我想不出你想要这样做的任何理由。
答案 1 :(得分:0)
class A(db.Model):
a=db.StringProperty(verbose_name='b')
答案 2 :(得分:0)
另一种方式应该是重新定义该字段的标签:
class MyAForm(forms.ModelForm):
class Meta:
model = A
def __init__(self, *args, **kwargs):
super(MyAForm, self).__init__(*args, **kwargs)
self.fields['a'].label = 'something'