我似乎陷入困境,不确定哪个方向最佳。
我的项目中有一些应用程序,并希望将三个视图合并到一个模板中。
我有一个userprofile,我想在其中显示信息,最新新闻以及他的照片
通过这个我正在使用 jQuery标签
我已经定义了我的三个标签,其中一个调用普通div,另外两个是调用的URL。
<a href="wall/recent">wall</a>
和<a href="photos/recent">photos</a>
地址栏在用户个人资料中读取以下内容
http://localhost:8000/profiles/profile_name/
views.py
wall
和photos
中的如下所示
@login_required
def index(request, template_name='wall/_index.html'):
photos = Photos.objects.filter(user=request.user).order_by('-id')
context = { 'photos': photos, }
return render_to_response(template_name, context,
context_instance=RequestContext(request))
但是,如果我再查看我的个人资料,那很好,但每当我切换到另一个用户个人资料时,它似乎会显示我的一些信息。
我知道request.user正在查看已登录的用户,如何在地址栏中获取该用户并将其传递,以便显示正确的信息,即如果profile_name
= john则显示johns照片,最近的墙壁物品等。
答案 0 :(得分:2)
如果你有urls.py
这样的话:
urlpatterns = patterns('',
(r'^profiles/(?P<prof_name>[A-Za-z0-9\-_]+)/$', 'appname.views.index'))
然后您的视图代码可以像这样修改:
@login_required
def index(request, prof_name, template_name='wall/_index.html'):
photos = Photos.objects.filter(user__username=prof_name).order_by('-id')
context = { 'photos': photos, }
return render_to_response(template_name, context,
context_instance=RequestContext(request))
这样做会将名称prof_name
绑定到profiles/
之后和最终/
之前的网址中的任何值。根据网址/profiles/john/
,您最终会调用index
视图,prof_name
设置为john
。