Как я могу программно получить 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