2013-12-19 33 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

確實,比較我更新的答案。 –