Django: максимальная длина модели и максимальная длина формы - PullRequest
3 голосов
/ 07 мая 2011

Мне нужно каким-то образом подключить ограничения модели max_length в объект Form.

Скажем, я определяю модель с полем: name = models.CharField(max_length=30)
Теперь я определяю объект формы с тем же полем: name = forms.CharField(max_length=30)

Вопрос в том, есть ли способ для синхронизациидва?Если я сначала определю модель, могу ли я определить max_length класса Form на основе того, что я сделал с классом Model?

Ответы [ 2 ]

7 голосов
/ 07 мая 2011

Использование 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

1 голос
/ 07 мая 2011

Использовать ModelForms: http://docs.djangoproject.com/en/dev/topics/forms/modelforms/#modelform Таким образом, формы наследуются непосредственно от моделей, и вам не нужно повторяться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...