我的应用程序上有一个mixin/视图.py公司名称:
class RefereeViewMixin(object):
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
if not self.request.user.is_superuser and \
not self.request.user.has_group("referee"):
raise PermissionDenied
return super(RefereeViewMixin, self).dispatch(*args, **kwargs)
以及从我的自定义mixin和CreateView派生的视图:
^{pr2}$最后,我的最后一个观点来自于juventerresultcreateview:
class RefereeFireFighterResultCreateView(RefereeResultCreateView):
model = FireFighterResult
category = "fire_fighter"
fields = RefereeResultCreateView.fields + [
"extinguish_success", "extinguish_failure", "wall_hit"]
模式是这样的:
url(r'^fire_fighter/(?P<pk>\d+)/create/$',
RefereeFireFighterResultCreateView.as_view(),
name="referee_fire_fighter_result_create")
但是,当我转到/app/fire_fighter/some_id/create/时,我得到了TypeError。它告诉我super(type,obj):obj必须是类型的实例或子类型。当我调试它时,我发现deferenceResultCreateView的getucontext_data方法导致了这个错误。如果我不重写那个方法,我就看不到任何错误。当我在deferenceFireFighterResultCreateView类重写它时,我没有看到任何错误。在
我能克服这个问题。但是,我认为这不是一种优雅的方式。实际上,它很脏。而且,我很好奇原因。为什么它不能像我期望的那样工作?什么是优雅的解决方案?在
更新
回溯如下:
目前没有回答
相关问题 更多 >
编程相关推荐