gpt4 book ai didi

Django admin change_view 未调用

转载 作者:行者123 更新时间:2023-12-02 17:11:06 25 4
gpt4 key购买 nike

我正在尝试以这种方式为模型重新定义 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)

但是方法 change_view 没有被调用。

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

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

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

我正在使用 Django 2.0.2

最佳答案

change_view 仅在模型实例编辑页面上调用,因此在编辑现有模型实例时

changeform_view 将在模型实例的所有页面上调用(添加、编辑和删除)

如果您要添加新的模型实例,则需要改用 add_view

change_viewadd_viewdelete_view 在文档中有概述 https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_view

关于Django admin change_view 未调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49227008/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com