2012-03-24 1 views
1

나는 내가 url.py에 로그인 한 사용자의 pk를 모르는됩니다 usersDjango에서 users/self /가/<pk> /와 같은 url.py를 쓰려면 어떻게해야합니까? <pk>은 (는) 로그인 한 사용자입니까?

urlpatterns = patterns('doors.view', 
    url(r'^users/$'   , 'users_list' , name = 'users_list' ), 
    url(r'^users/(?P<pk>\d+)/$', 'users_detail', name = 'users_detail'), 
    url(r'^users/self/$'  , # do some sort of redirect here  ), 
) 

리디렉션의 문제에 대한 간단한보기를 어디 url.py를 작성하려합니다. view.py에서 나는 을 통해 users/self/에 액세스 할 수 있습니다.

어쩌면 내가 잘못하고있는 것일까 요? 내가 뭐라고 제안하니?

답변

2

나의 제안 (그것은 쉬운 일입니다 있는지 확실하지 않습니다)는 전화 후 users_detail보기를 사용자의 PK를 잡아 수있는 새로운 뷰를 생성하는 것 urls.py에서 :

urlpatterns = patterns('doors.view', 
    url(r'^users/$'   , 'users_list' , name = 'users_list' ), 
    url(r'^users/(?P<pk>\d+)/$', 'users_detail', name = 'users_detail'), 
    url(r'^users/self/$'  , 'users_detail', {'pk'='self'}  ), 
) 

을 그리고 views.py에서 :

if pk == 'self': 
    user = request.user 
else: 
    user = User.objects.get(pk=pk) 
1

request.user.pk 값으로 user_detail()을 호출하는보기를 생성하십시오.

@login_required 
def self_detail(request): 
    return users_detail(request, request.user.pk) 
4

당신도 할 수있는 다음과 같은 :