我试图从URL中获取两个参数以添加到我的上下文中。
这是网址:
url(r'^company/(?P<company>[\w\-\_]+)/?/(?P<program>[\w\-\_]+)/?$', RegistrationView.as_view(),
name='test'),
观点:
class RegistrationView(RegistrationMixin, BaseCreateView):
form_class = AppUserIntroducerCreateForm
template_name = "registration/register_introducer.html"
slug_field = 'company'
def get_context_data(self, *args, **kwargs):
context = super(RegistrationIntroducerView, self).get_context_data(**kwargs)
print(self.get_slug_field())
context['company'] = ??????
context['program'] = ??????
return context
我已经尝试了所有内容来获取值self.company
,kwargs['company']
等,我在这里做错了什么?
答案 0 :(得分:2)
Here是您的参考。
context = super(RegistrationView, self).get_context_data(**kwargs)
print(self.get_slug_field())
context['company'] = self.kwargs['company']
context['program'] = self.kwargs['program']
答案 1 :(得分:2)
试试这个
self.kwargs['company']
self.kwargs['program']
答案 2 :(得分:1)
基类的as_view
类方法(View
)是一个非常简单的view
函数的闭包,它接受urls.py中定义的参数。然后,它将它们作为字典分配给视图类的self.kwargs
属性。因此,您需要执行以下操作才能访问此数据:
self.kwargs['company']
另外,如果您从RegistrationView
而不是CreateView
继承了BaseCreateView
,那么您的SingleObjectTemplateResponseMixin
会混入您的观点和slug_field
( model
方法将使用queryset
或get_object
来获取所需的公司。此外,包含company
实例的上下文变量Company
已经为您设置,您不必自己设置它。