2013-12-19 35 views
0

我有这样的事情:的CustomField在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

form["testField"](或{{ form.testField }}在模板中)将产生BoundField(参见https://docs.djangoproject.com/en/1.6/ref/forms/api/#django.forms.BoundField)。

要访问Field对象本身需要form["testField"].field(或{{ form.testField.field }} - 或者只是{{ field.field }}如果你在表单的bouldfields迭代 - 模板)。

也有一个在您的来电super()的错误,它应该是:

super(MyCustomField, self).__init__(*args, **kwargs) 

super(Models.CharField, self).__init__(*args, **kwargs) 

最后:窗体字段是不是模型的领域。如果{{ field }}是您表单的一个字段,则它只是一个完全不同(并且不相关)的对象。

+0

我试过:{{field.field.description}}而没有。 – milandjukic88

+0

与{{field.field}}我得到的CharField对象,但不是描述... – milandjukic88

+0

确实,比较我更新的答案。 –