小编Red*_*lle的帖子

Django 管理change_view 未调用

我正在尝试以这种方式重新定义模型的 ModelAdmin:

class MakeModelAdmin(admin.ModelAdmin):

    ...

    # def changeform_view(self, request, object_id, form_url='', extra_context=None):
    #     if not request.user.is_superuser:
    #         self.exclude = ('company',)
    #     extra_context = extra_context or {}
    #     return super().changeform_view(request, object_id, form_url, extra_context=extra_context,)

    def change_view(self, request, object_id, form_url='', extra_context=None):
        if not request.user.is_superuser:
            self.exclude = ('company',)
        extra_context = extra_context or {}
        return super().change_view(request, object_id, form_url, extra_context=extra_context,)


admin.site.register(Make, MakeModelAdmin)
Run Code Online (Sandbox Code Playgroud)

但方法change_view没有被调用。

同时changeform_view调用被注释的代码。我检查了一下,ModelAdmin 包含这两种方法。

我不明白为什么在调用“changeform_view”的地方不调用“change_view”(显然是在未注释时)。

文档建议change_view: https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_view

我正在使用 Django 2.0.2

django django-admin

2
推荐指数
1
解决办法
3955
查看次数

标签 统计

django ×1

django-admin ×1