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

Скажем, у меня есть класс Django примерно так:

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

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

Ответ 1

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

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

Ответ 2

Ответ Бен-Джеймс - хороший ответ, но я думаю, что это проще и понятнее:
1. В шаблоне:
{{form.name.field.max_length}}

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