1. ホーム
  2. python

[解決済み] Django のモデルフィールドの max_length をプログラム的に取得するには?

2023-08-19 05:10:21

質問

以下のような Django のクラスがあるとします。

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

プログラム上でどのように max_length の値を得ることができます。 name のフィールドの値ですか?

どのように解決するのですか?

Person._meta.get_field('name').max_length を実行すると、このような値になります。 しかし _meta を使うことは、これが通常の使用でやってはいけないことであることを示唆しています。

編集: Carl が指摘したように、このネーミングは誤解を招くもので、これを使うことはかなり許容されるようです。 http://www.b-list.org/weblog/2007/nov/04/working-models/

詳しくは Django Docs をご覧ください。 https://docs.djangoproject.com/en/dev/ref/models/meta/#django.db.models.options.Options.get_field