Django ModelForm:为字段添加别名
我有一个(GoogleAppEngine)Django的模型表单:
class A(db.Model):
a = db.StringProperty()
class MyAForm(djangoforms.ModelForm):
class Meta:
model = A
这个表单里有一个字符串字段叫做 a
。但是我想把这个字段叫成别的名字,比如 b
。所以我希望能有一个字段叫 b
,当表单提交时,我们可以用 b
的值来填充一个新的 A 实体的 a
属性。
有没有什么简单的方法可以实现这个功能呢?
(顺便说一下,我不想改动底层的模型)
3 个回答
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'
0
在编程中,有时候我们会遇到一些问题,比如代码运行不正常或者出现错误。这些问题可能是因为我们没有正确理解某些概念或者用法。为了帮助大家更好地理解这些问题,我们可以通过一些例子和解释来澄清这些概念。
比如说,假设你在写代码的时候,遇到了一个错误提示。这个提示可能会告诉你哪里出了问题,但有时候它的表述可能比较复杂,让人难以理解。这时候,我们就需要把这些复杂的内容拆解开来,看看每个部分的意思。
另外,编程中有很多术语和概念,比如“变量”、“函数”、“循环”等等。对于初学者来说,这些词可能听起来很陌生。我们可以把这些术语用更简单的语言来解释,让大家更容易理解。
总之,编程是一门需要不断学习和实践的技能,遇到问题时不要气馁,慢慢来,逐步理解每个概念,你会发现编程其实很有趣。
class A(db.Model):
a=db.StringProperty(verbose_name='b')
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名称,不过我也想不出有什么理由你会想这么做。