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

89 投票
2 回答
17531 浏览
提问于 2025-04-15 16:34

假设我有一个像这样的Django类:

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

我该如何通过编程的方式获取这个类中name字段的max_length值呢?

2 个回答

8

这个问题是关于模型的,但对于那些想要在表单上做同样事情的人(我也是因为这个原因才找到这个讨论的),我觉得这个方法非常简单明了:
1. 在模板中:
{{form.name.field.max_length}}

2. 在Python代码中(比如在视图里):
form.name.field.max_length

130

使用 Person._meta.get_field('name').max_length 这个代码可以获取到名字字段的最大长度。不过,使用 _meta 这个东西,说明在正常情况下不应该这样做。

补充一下:正如Carl所说,这个命名有点误导,其实使用它是可以接受的。你可以查看这个链接了解更多信息:http://www.b-list.org/weblog/2007/nov/04/working-models/

想了解更多,可以去Django的官方文档看看: https://docs.djangoproject.com/en/dev/ref/models/meta/#django.db.models.options.Options.get_field

撰写回答