Djangoモデルのフィールドのデフォルト値


100

モデルがあるとします:

class SomeModel(models.Model):
    id = models.AutoField(primary_key=True)
    a = models.CharField(max_length=10)
    b = models.CharField(max_length=7)

現在、デフォルトの管理者を使用して、このタイプのオブジェクトを作成/編集しています。b各オブジェクト値で作成できず、デフォルト値を受け取ることができるように、管理者からフィールドを削除するにはどうすればよい0000000ですか?

回答:



22

次のようにデフォルトを設定できます。

b = models.CharField(max_length=7,default="foobar")

次に、次のようにモデルの管理クラスでフィールドを非表示にできます。

class SomeModelAdmin(admin.ModelAdmin):
    exclude = ("b")

21

次のようなデフォルトのフィールドで呼び出し可能オブジェクトを使用することもできます。

b = models.CharField(max_length=7, default=foo)

そして、呼び出し可能オブジェクトを定義します。

def foo():
    return 'bar'

4
これは1.8では機能しないようですが、ドキュメントではそれが機能するはずです。foo()クラスメソッドでなければなりませんか?
ToothlessRebel

3
@staticmethodfoo関数のラッパーを設定する必要があるかもしれません。
アディクト
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.