假设我有一个模型:
class SomeModel(models.Model):
id = models.AutoField(primary_key=True)
a = models.CharField(max_length=10)
b = models.CharField(max_length=7)
目前我正在使用默认管理员来创建/编辑此类型的对象。
如何从管理员中删除 b
字段,以便无法使用值创建 ,而是会收到默认值{{1 }}?
答案 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'