47

デフォルト値が指定されたいくつかのフィールドを持つ Django モデルがあります。後でコードでこれらのフィールドのいずれかのデフォルト値を取得しようとしています。モデルから特定のフィールドのデフォルト値を取得する簡単な方法はありますか?

4

5 に答える 5

18

次のようにフィールドを取得できます。

myfield = MyModel._meta.get_field_by_name('field_name')

デフォルトはフィールドの単なる属性です。

myfield.default
于 2009-08-20T19:41:14.057 に答える
0

複数のフィールドのデフォルト値が必要な場合 (たとえば、何らかの再初期化ステップで)、モデルの新しい一時オブジェクトをインスタンス化し、そのオブジェクトのフィールド値を使用するだけの価値があるかもしれません。

temp_obj = MyModel()
obj.field_1 = temp_obj.field_1 if cond_1 else 'foo'
...
obj.field_n = temp_obj.field_n if cond_n else 'bar'

もちろん、パフォーマンスや依存関係の問題が発生せずに一時オブジェクトを構築できる場合にのみ、これは価値があります。

于 2015-02-21T16:24:21.657 に答える