django模型中的CustomField获得价值

时间:2013-12-19 11:31:05

标签: django

我有这样的事情:

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模板值吗?

1 个答案:

答案 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 }}是您表单的某个字段,则它只是一个完全不同(且不相关)的对象。