How can I programmatically obtain the max_length of a Django model field?

前端 未结 2 1652
被撕碎了的回忆
被撕碎了的回忆 2020-12-13 07:57

Say I have a Django class something like this:

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

How can I p

相关标签:
2条回答
  • 2020-12-13 08:33

    Person._meta.get_field('name').max_length will give you this value. But having to use _meta suggests this is something you shouldn't do in normal usage.

    Edit: as Carl pointed out, this naming is misleading and it does seem quite acceptable to use it: http://www.b-list.org/weblog/2007/nov/04/working-models/

    0 讨论(0)
  • 2020-12-13 08:43

    The question is regarding models, but for people trying to do the same for forms (that's how I ended up in this thread), I think this approach is quite simple and clear:
    1. In a template:
    {{form.name.field.max_length}}

    2. In python code (e.g. in the view)
    form.name.field.max_length

    0 讨论(0)
提交回复
热议问题