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类吗?
如果您有一个直接与模型相关的表单,则使用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)