我想从某些第三方代码继承模型类。我不会使用一些字段,但希望我的客户端能够在管理员中编辑模型。最好的办法是将他们从Admin中隐藏起来,还是可以阻止他们在第一时间被创建?Django模型继承。隐藏或删除字段
此外 - 如果需要其中一个不需要的字段,我该怎么办?我的第一个想法是重写保存方法,只是把一个默认值。
我想从某些第三方代码继承模型类。我不会使用一些字段,但希望我的客户端能够在管理员中编辑模型。最好的办法是将他们从Admin中隐藏起来,还是可以阻止他们在第一时间被创建?Django模型继承。隐藏或删除字段
此外 - 如果需要其中一个不需要的字段,我该怎么办?我的第一个想法是重写保存方法,只是把一个默认值。
如果您继承了模型,那么尝试隐藏或禁用任何现有字段可能不明智。你可能做的最好的事情正是你所建议的:覆盖save()
并在那里处理你的逻辑。
而不是继承,请考虑使用自定义表单。
您可以消除仍在模型中的显示字段。
您可以在窗体的clean()
方法中验证并提供默认值。
见http://docs.djangoproject.com/en/dev/ref/contrib/admin/#adding-custom-validation-to-the-admin
您可以控制在管理员可编辑的字段。
从Django文档:
“如果你想为只包括名称和标题字段中的作者模型的形式,你可以指定字段或排除这样的:
class AuthorAdmin(admin.ModelAdmin):
fields = ('name', 'title')
class AuthorAdmin(admin.ModelAdmin):
exclude = ('birth_date',)"