2011-05-07 118 views
3

我需要以某種方式將模型的max_length限制掛鉤到Form對象中。Django:model maxlength和form maxlength

說我定義模型與現場:name = models.CharField(max_length=30)
現在我定義了一個窗體對象具有相同的字段:name = forms.CharField(max_length=30)

問題是,是否有什麼方法兩個同步?如果我首先定義一個模型,我可以根據我對Model類所做的事情來定義Form類的max_length嗎?

回答

6

如果您有與表格直接相關的模型,那麼使用ModelForm是有意義的。

另一種方法是拿起從模型中的MAX_LENGTH屬性是使用模型的_meta屬性,像這樣:

>>> SomeModel._meta.get_field('some_field').max_length 
64 
>>> 

這樣:

from models import * 

class MyForm(forms.Form): 
    some_field = forms.CharField(label='Some Field', 
      max_length=SomeModel._meta.get_field('some_field').max_length) 

CharField docs

+0

真棒,謝謝! – reedvoid 2011-05-09 05:14:22