【发布时间】:2012-04-18 14:41:09
【问题描述】:
说,我有以下通过触摸dispatch()相互重叠的mixin:
class FooMixin(object):
def dispatch(self, *args, **kwargs):
# perform check A
...
return super(FooMixin, self).dispatch(*args, **kwargs)
class BarMixin(object):
def dispatch(self, *args, **kwargs):
# perform check B
...
return super(FooMixin, self).dispatch(*args, **kwargs)
如果我希望我的视图通过订单,请检查 A -> 检查 B,我的代码应该是 MyView(FooMixin, BarMixin, View) 还是 MyView(BarMixin, FooMixin, View)?
为什么我们总是把View 或其子类放在mixin 之后? (我在阅读 django 通用视图的源代码时注意到了这一点,但我不知道它背后的原理,如果有的话)
【问题讨论】:
标签: python django django-views django-class-based-views method-resolution-order