Django模型继承。隐藏或删除字段

时间:2009-03-04 17:49:26

标签: python django django-models django-admin

我想从一些第三方代码继承一个模型类。我不会使用某些字段,但希望我的客户能够在Admin中编辑模型。最好的办法是将它们隐藏在Admin中,还是真的可以防止它们首先被创建?

此外 - 如果需要其中一个不需要的字段,我该怎么办?我的第一个想法是覆盖save方法,只需输入一个默认值。

3 个答案:

答案 0 :(得分:5)

您可以在admin。

中控制可编辑的字段

来自Django文档:

“如果您希望作者模型的表单只包含名称和标题字段,您可以指定字段或排除如下:

class AuthorAdmin(admin.ModelAdmin):
    fields = ('name', 'title')

class AuthorAdmin(admin.ModelAdmin):
    exclude = ('birth_date',)"

http://docs.djangoproject.com/en/dev/ref/contrib/admin/

答案 1 :(得分:4)

如果您继承模型,那么尝试隐藏或禁用任何现有字段可能并不明智。您可能做的最好的事情就是您的建议:覆盖save()并在那里处理您的逻辑。

答案 2 :(得分:4)

不要继承,而应考虑使用自定义表单。

  1. 您可以从显示中删除仍在模型中的字段。

  2. 您可以使用表单clean()方法验证并提供默认值。

  3. 请参阅http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin