小编jer*_*ach的帖子

为什么Django DetailView没有可用的kwargs

为什么我不能在DetailView中访问从url字符串传递的kwargs ['party_id']?

Test url: http://127.0.0.1:8000/party/3/activity/2/
Run Code Online (Sandbox Code Playgroud)

urls.py

url(r'^party/(?P<party_id>\d*)/activity/(?P<pk>\d*)/$', ActivityView.as_view(), name='activity')
Run Code Online (Sandbox Code Playgroud)

views.py

class ActivityView(DetailView):
    template_name = "ooe/activity_results.html"
    context_object_name = "activity"
    model = Activity

    def get_context_data(self, **kwargs):
        context = super(ActivityView, self).get_context_data(**kwargs)
        #this line is not working because kwargs is just: {'object': <Activity: Activity 2>}
        context['submissions'] = self.get_object().get_submissions(kwargs['party_id'])       
        return context

    @method_decorator(user_passes_test(active_participant))
    def dispatch(self, *args, **kwargs):
        return super(ActivityView, self).dispatch(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

python django django-class-based-views class-based-views

0
推荐指数
1
解决办法
1290
查看次数