web-dev-qa-db-ja.com

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

モデルがあるとします:

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

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

87
Yuval Adam

editableFalseに設定し、defaultをデフォルト値に設定します。

http://docs.djangoproject.com/en/dev/ref/models/fields/#editable

b = models.CharField(max_length=7, default='0000000', editable=False)

また、idフィールドは不要です。 Djangoは自動的に追加します。

133
FogleBird

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

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

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

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

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

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

そしてcallableを定義します:

def foo():
    return 'bar'
18
MrOodles