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

227121 次浏览

editable设置为 False,将 default设置为默认值。

Http://docs.djangoproject.com/en/stable/ref/models/fields/#editable

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

此外,您的 id字段是不必要的。 Django 将自动添加它。

您可以这样设置默认值:

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

然后你可以像下面这样用模型的管理类隐藏字段:

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

还可以在默认字段中使用可调用类,如:

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

然后定义可调用的:

def foo():
return 'bar'