Django模型中字段的默认值

时间:2009-04-16 12:13:35

标签: python django django-models django-admin

假设我有一个模型:

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

目前我正在使用默认管理员来创建/编辑此类型的对象。 如何从管理员中删除 b 字段,以便无法使用值创建 ,而是会收到默认值{{1 }}?

3 个答案:

答案 0 :(得分:122)

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

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

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

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

答案 1 :(得分:21)

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

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

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

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

答案 2 :(得分:17)

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

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

然后定义callable:

def foo():
    return 'bar'