2013-02-09 3 views
1

문제는 그룹의 모든 사람을 표시하기 위해보기를 사용하는 것입니다. 문제는 urls.py의 regex에서 인라인 필터 사용

내가 뭔가 싶어 ... 내가 같은 줄에 필터링 할 정규식에서 PK를 사용하는 방법을 몰라 :이

url(r'^groups/(?P<pk>\d+)/$', login_required(MyListView.as_view(model=Person, queryset=Person.objects.filter(groups__id=pk))), name='person_group_list'), 

를 내가 얻을 : "나가서 설명하자면 NameError/클라이언트/

이름에 'PK'는 "

어떤 힌트를 정의되지 않는 이유는 무엇입니까?

답변

2

정말보기를 작성해야합니다. 그것이 클래스 기반 뷰의 장점입니다. MyListView에서 상속받을 수 있습니다. (나는 네가 네가 이것을하고 싶지 않다고 말한 것을 알고있다. 그러나 정말로가는 것은 올바른 길이다).

from your_app.views import MyListView 
from your_app.models import Person 

class MySpecialListView(MyListView): 
    model = Person 
    get_queryset(self, *args, **kwargs): 
     return Person.objects.filter(groups__id=self.kwargs['group_pk'])) 

참고로 가능한 충돌이 발생하지 않도록 정규 표현식에서 pk를 group_pk로 변경합니다.

url(r'^groups/(?P<group_pk>\d+)/$', login_required(MySpecialListView.as_view(), name='person_group_list')