我想从一些第三方代码继承一个模型类。我不会使用某些字段,但希望我的客户能够在Admin中编辑模型。最好的办法是将它们隐藏在Admin中,还是真的可以防止它们首先被创建?
此外 - 如果需要其中一个不需要的字段,我该怎么办?我的第一个想法是覆盖save方法,只需输入一个默认值。
答案 0 :(得分:5)
您可以在admin。
中控制可编辑的字段来自Django文档:
“如果您希望作者模型的表单只包含名称和标题字段,您可以指定字段或排除如下:
class AuthorAdmin(admin.ModelAdmin):
fields = ('name', 'title')
class AuthorAdmin(admin.ModelAdmin):
exclude = ('birth_date',)"
答案 1 :(得分:4)
如果您继承模型,那么尝试隐藏或禁用任何现有字段可能并不明智。您可能做的最好的事情就是您的建议:覆盖save()
并在那里处理您的逻辑。
答案 2 :(得分:4)
不要继承,而应考虑使用自定义表单。
您可以从显示中删除仍在模型中的字段。
您可以使用表单clean()
方法验证并提供默认值。
请参阅http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin