Как программно получить max_length поля модели Django? - PullRequest
59 голосов
/ 02 декабря 2009

Скажем, у меня есть класс Django что-то вроде этого:

class Person(models.Model):
    name = models.CharField(max_length=50)
    # ...

Как программно получить значение max_length для поля name?

Ответы [ 2 ]

83 голосов
/ 02 декабря 2009

Person._meta.get_field('name').max_length даст вам это значение. Но использование _meta предполагает, что это не то, что вы не должны делать при обычном использовании.

Редактировать: как указал Карл, это наименование вводит в заблуждение, и его вполне приемлемо использовать: http://www.b -list.org / weblog / 2007 / nov / 04 / working-models /

4 голосов
/ 03 июля 2015

Вопрос касается моделей, но для людей, пытающихся сделать то же самое для форм (именно так я и оказался в этой теме), я думаю, что этот подход довольно прост и понятен:
1. В шаблоне:
{{form.name.field.max_length}}

2. В коде Python (например, в представлении)
form.name.field.max_length

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