我有这样的事情:
class Test(models.Model):
testField = MyCustomField('my field')
class MyCustomField(models.CharField):
description = "some description"
def __init__(self, *args, **kwargs):
super(models.CharField, self).__init__(*args, **kwargs)
class TestForm(ModelForm):
class Meta:
model=Test
我可以阅读描述字段的django模板值吗?
答案 0 :(得分:1)
form["testField"]
(或模板中的{{ form.testField }}
)将产生BoundField
(cf https://docs.djangoproject.com/en/1.6/ref/forms/api/#django.forms.BoundField)。
要访问Field
对象本身,您需要form["testField"].field
(或{{ form.testField.field }}
- 或仅{{ field.field }}
,如果您在模板的模板中进行迭代 - 在模板中)。
您对super()
的通话中也存在错误,应该是:
super(MyCustomField, self).__init__(*args, **kwargs)
不是
super(Models.CharField, self).__init__(*args, **kwargs)
最后:表单的字段不是模型的字段。如果{{ field }}
是您表单的某个字段,则它只是一个完全不同(且不相关)的对象。