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

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

有帮助吗?

解决方案

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

其他提示

您可以在admin。

中控制可编辑的字段

来自Django文档:

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

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

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

http://docs.djangoproject.com/en/dev/ REF /了contrib /管理/

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

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

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

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

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top