如何以编程方式获取Django模型字段的max_length?

时间:2009-12-01 21:56:15

标签: python django django-models oop

说我有一个像这样的Django类:

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

如何以编程方式获取max_length字段的name值?

2 个答案:

答案 0 :(得分:82)

Person._meta.get_field('name').max_length会给你这个价值。 但是必须使用_meta表示这是正常使用时不应该做的事情。

编辑:正如卡尔指出的那样,这种命名具有误导性,使用它似乎完全可以接受:http://www.b-list.org/weblog/2007/nov/04/working-models/

答案 1 :(得分:4)

问题在于模型,但是对于那些试图对形式做同样事情的人(这就是我在这个帖子中的结果),我认为这种方法非常简单明了:
1.在模板中:
{{form.name.field.max_length}}

2.在python代码中(例如在视图中)
form.name.field.max_length