web-dev-qa-db-ja.com

プログラムでDjangoモデルフィールドのmax_lengthを取得するにはどうすればよいですか?

Djangoクラスのようなものがあるとしましょう:

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

nameフィールドのmax_length値をプログラムで取得するにはどうすればよいですか?

59
Mat

Person._meta.get_field('name').max_lengthはこの値を提供します。 しかし、_metaを使用する必要があるということは、これが通常の使用では実行すべきではないことを示唆しています。

編集:カールが指摘したように、この命名は誤解を招くものであり、それを使用することはかなり受け入れられるようです: http://www.b-list.org/weblog/2007/nov/04/working-models/

83
Ben James

質問はモデルに関するものですが、フォームに対して同じことをしようとしている人にとって(それが私がこのスレッドにたどり着いた方法です)、このアプローチは非常に単純で明確だと思います。
1。テンプレートの場合:
{{form.name.field.max_length}}

2。 pythonコード(例:ビュー内)
form.name.field.max_length

4
Gines Hidalgo