2014-04-01 4 views
1

URL에서 두 개의 매개 변수를 가져와 내 컨텍스트에 추가하려고합니다.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']가, 내가 잘못 여기 난 무엇을하고

는 URL인가?

+1

self.kwargs는가는 길입니다. 예를 들면 다음과 같습니다. http://stackoverflow.com/questions/6629426/django-class-based-generic-views-and-authentication – mawimawi

답변

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'] 
+0

Pete sake! 나는 그들 모두를 시험해 보았다. 그게 고마워. – Prometheus

2

보십시오이

self.kwargs['company'] 
self.kwargs['program'] 
1

기본 클래스 (View)의 as_view 클래스 메소드는 urls.py.에 정의 된 인수를 받아들이는 아주 간단 view 기능을 주위에 폐쇄입니다 그런 다음 뷰 클래스의 속성 self.kwargs에 사전으로 지정합니다. 따라서 당신이이 데이터에 액세스하기 위해 수행해야하는 것은 : 또한

self.kwargs['company'] 

, 당신은 CreateView 대신 BaseCreateView에서 RegistrationView을 상속하는 경우, 당신과 함께 (보기와 혼합 SingleObjectTemplateResponseMixin을 얻고 slug_fieldmodel 또는 queryset)는 원하는 회사를 가져 오는 데 get_object 메서드에서 사용됩니다. 또한 Company 인스턴스가 포함 된 컨텍스트 변수 company이 이미 설정되어 있으므로 직접 설정하지 않아도됩니다.

관련 문제