Django:模型maxlength和form maxlength

ree*_*oid 3 forms django model

我需要以某种方式将Model的max_length约束挂钩到Form对象中.

假设我使用字段定义模型:name = models.CharField(max_length=30)
现在我使用相同的字段定义Form对象:name = forms.CharField(max_length=30)

问题是,有什么方法可以同步这两个?如果我首先定义一个模型,我可以max_length根据我对Model类的定义来定义Form类吗?

DTi*_*ing 7

如果您有一个直接与模型相关的表单,则使用ModelForm是有意义的.

从模型中获取max_length属性的另一种方法是使用模型的_meta属性,如下所示:

>>> SomeModel._meta.get_field('some_field').max_length
64
>>>
Run Code Online (Sandbox Code Playgroud)

所以:

from models import *

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

CharField docs