I have mixin on top of my application /views.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)
And also the view obtained from my custom mixin and CreateView:
class RefereeResultCreateView(RefereeViewMixin, CreateView):
category = None
template_name = "referee/result_create.html"
fields = ["minutes", "seconds", "miliseconds", "disqualification"]
def get_success_url(self):
return reverse("order_list", args=[self.category])
def get_context_data(self, **kwargs):
context = super(RefereeResultCreateView, self).get_context_data(
**kwargs)
context["project"] = Project.objects.get(pk=self.kwargs.get("pk"))
return context
def form_valid(self, form):
result = form.save(commit=False)
result.project = Project.objects.get(pk=self.kwargs.get("pk"))
result.save()
messages.success(self.request, _(
"Result entry for {} project created.".format(result.name)))
return super(RefereeResultCreateView, self).form_valid(form)
Finally, my final view, which is derived from the RefereeResultCreateView:
class RefereeFireFighterResultCreateView(RefereeResultCreateView):
model = FireFighterResult
category = "fire_fighter"
fields = RefereeResultCreateView.fields + [
"extinguish_success", "extinguish_failure", "wall_hit"]
And the template looks like this:
url(r'^fire_fighter/(?P<pk>\d+)/create/$',
RefereeFireFighterResultCreateView.as_view(),
name="referee_fire_fighter_result_create")
However, when I go to / app / fire _fighter / some_id / create /, I got a TypeError. It tells me super (type, obj): obj must be an instance or subtype of a type . When I debug it, I see that the RefereeResultCreateView get_context_data strong> method is causing this error. If I do not override this method, I do not see any errors. When I override it in the RefereeFireFighterResultCreateView class, I don't see any errors.
. , , . , . , . , ? ?
:
https://gist.github.com/ilkerkesen/e65fefa66890758bcdcd