100 假设我有一个模型: class SomeModel(models.Model): id = models.AutoField(primary_key=True) a = models.CharField(max_length=10) b = models.CharField(max_length=7) 目前,我正在使用默认的admin创建/编辑此类型的对象。如何b从管理员中删除该字段,以使每个对象都无法创建一个值,而是会收到默认值0000000? python django django-models django-admin — 尤瓦尔·亚当 source
154 设置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将自动添加它。 — FogleBird source
22 您可以这样设置默认值: b = models.CharField(max_length=7,default="foobar") 然后您可以使用模型的Admin类隐藏字段,如下所示: class SomeModelAdmin(admin.ModelAdmin): exclude = ("b") — 安德鲁·黑尔 source
21 您还可以在默认字段中使用callable,例如: b = models.CharField(max_length=7, default=foo) 然后定义可调用项: def foo(): return 'bar' — 先生 source 4 尽管文档指出应该在1.8中运行,但这似乎并不起作用。应该foo()是一个类方法吗? — ToothlessRebel 3 您可能需要@staticmethod围绕foo函数设置包装器。 — 上瘾者2016年
foo()
是一个类方法吗?