114

假设我有一个模型:

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

目前我正在使用默认管理员来创建/编辑这种类型的对象。如何b从管理员中删除该字段,以便无法使用值创建每个对象,而是接收默认值0000000

4

3 回答 3

178

设置editableFalse默认default值。

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

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

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

于 2009-04-16T12:16:41.300 回答
26

您还可以在默认字段中使用可调用对象,例如:

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

然后定义可调用对象:

def foo():
    return 'bar'
于 2011-11-01T15:53:42.267 回答
26

您可以像这样设置默认值:

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

然后您可以使用模型的 Admin 类隐藏该字段,如下所示:

class SomeModelAdmin(admin.ModelAdmin):
    exclude = ("b")
于 2009-04-16T12:20:38.157 回答