1

我正在尝试写一个url.py我有一个简单视图的地方users

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       ),
)

重定向的问题是我不知道pk登录用户的身份url.py。在view.py,我显然会做一个@login_required能够访问users/self/

也许我做错了?你们建议我做什么?

4

3 回答 3

4

您还可以在 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)
于 2012-03-24T12:00:45.797 回答
2

我的建议(不确定是否是最简单的)是创建一个新视图,您可以在其中获取用户的 pk 然后调用该users_detail视图:

@login_required
def self_detail(request):
    return users_detail(request, request.user.pk)
于 2012-03-24T06:04:50.213 回答
1

user_detail()创建一个使用 from 的值调用的视图request.user.pk

于 2012-03-24T06:03:54.333 回答