我有一些ModelAdmin类,它们的ModelForm
基于同一个ModelForm类
class RepairAdmin(RedirectMixin, admin.ModelAdmin):
pass
class PurchaseAdmin(RedirectMixin, admin.ModelAdmin):
pass
我需要为一些redirect_
方法定义特定的行为,因此我编写了RedirectMixin
:
class RedirectMixin(object):
def response_add(self, request, obj, post_url_continue=None):
if request.POST.get('_continue'):
return super(self.__class__, self).response_add(request, obj)
return HttpResponseRedirect(reverse('admin:requests_request_changelist'))
问题是我不能将self.__class__
与super()
一起使用-我得到“超过最大递归”异常。但是我不能指定类本身,我不知道它是PurchaseAdmin还是RepairAdmin
但关键是,你不需要知道。超级调用必须始终使用您在其中定义它的类。Python使用MRO解析引用
相关问题 更多 >
编程相关推荐