Red*_*lle 2 django django-admin
我正在尝试以这种方式重新定义模型的 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
change_view仅在模型实例编辑页面调用 get,因此在编辑现有模型实例时
changeform_view将在模型实例的所有页面上调用(添加、编辑和删除)
如果您要添加新的模型实例,则需要使用add_view。
change_view,add_view并delete_view在文档中概述
https://docs.djangoproject.com/en/2.0/ref/contrib/admin/#django.contrib.admin.ModelAdmin.change_view
| 归档时间: |
|
| 查看次数: |
3955 次 |
| 最近记录: |