Python Django ModelForm:向字段添加别名
我有一个(GoogleAppEngine)Django模型:Python Django ModelForm:向字段添加别名,python,django,google-app-engine,django-forms,Python,Django,Google App Engine,Django Forms,我有一个(GoogleAppEngine)Django模型: class A(db.Model): a = db.StringProperty() class MyAForm(djangoforms.ModelForm): class Meta: model = A 这将创建一个具有一个字符串字段a的表单。在我的表格上,我想把这个叫做别的,比如说b。所以我想要一个名为b的表单,当表单发布时,我们创建一个新的a实体,其a属性填充b-值 有没有一个简单的方法来处理这个问题 (请注
class A(db.Model):
a = db.StringProperty()
class MyAForm(djangoforms.ModelForm):
class Meta:
model = A
这将创建一个具有一个字符串字段a
的表单。在我的表格上,我想把这个叫做别的,比如说b
。所以我想要一个名为b
的表单,当表单发布时,我们创建一个新的a实体,其a
属性填充b
-值
有没有一个简单的方法来处理这个问题
(请注意,我不想更改基础模型)当您说要在表单上“调用”字段时,不清楚您的意思。你是说标签吗?这很容易做到:
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名称,但我想不出您希望这样做的任何原因。另一种方法应该是重新定义字段的标签:
class MyAForm(forms.ModelForm):
class Meta:
model = A
def __init__(self, *args, **kwargs):
super(MyAForm, self).__init__(*args, **kwargs)
self.fields['a'].label = 'something'
“(请注意,我不想更改基础模型)“我希望能够执行以下操作(假设我设置了正确的视图):
curl-d“b=my_b_string”http://domain.com/api/A
这将创建一个新的a(a='my_b_string')。如果在同一页上有两个表单,则它们都包含name字段。这就是我遇到的情况,我想将其中一个别名去掉,这样在传递到表单中时,request.POST将检索到正确的变量。@Richard:这就是表单前缀的作用:
class MyAForm(forms.ModelForm):
class Meta:
model = A
def __init__(self, *args, **kwargs):
super(MyAForm, self).__init__(*args, **kwargs)
self.fields['a'].label = 'something'