保存时忽略内联模型

时间:2017-07-06 12:22:06

标签: python django django-admin

我一直在查看文档和stackoverflow /论坛,以便在我将其保存在django admin中时忽略模型的内联子项。我一直在寻找几天,似乎无法找到答案。

我有一个普通的tabularinline对象:

class UserOrdersAdmin(admin.TabularInline):
    model = Order
    classes = ['collapse']

正常的用户管理员注册:

class UserAdmin(BaseUserAdmin):
    inlines = (UserOrdersAdmin, UserSettingsAdmin)

admin.site.unregister(User)
admin.site.register(User, UserAdmin)

我只想要的是当我在用户“更改视图”中按保存时,它将忽略内联到UserAdmin的内联“UserOrderAdmin”。

2 个答案:

答案 0 :(得分:2)

根据您对我的评论的回复,我想知道您想在管理员中显示一些额外信息,这是不可编辑的。这可以使用内联中的readonly_fields来实现,为了完整性,您还应该将max_num设置为0,否则您可以添加空内联。

您可以手动输入所有字段,也可以使用此答案中给出的内容:https://stackoverflow.com/a/42877484/2354734

最终结果看起来像这样。

class UserOrdersAdmin(admin.TabularInline):
    model = Order
    classes = ['collapse']
    max_num = 0

    def get_readonly_fields(self, request, obj=None):
        return list(set(
            [field.name for field in self.opts.local_fields] +
            [field.name for field in self.opts.local_many_to_many]
        ))

为了完整答案,还提供了documentation

的链接

答案 1 :(得分:0)

试试这个:

class UserOrdersAdmin(admin.TabularInline):
    model = Order
    classes = ['collapse']
    extra = 0