查看其他用户个人资料

时间:2017-03-26 19:12:50

标签: python django python-3.x

我希望用户点击其他用户访问他们的个人资料,而无需修改帖子。

这是我的Profil观点:

def Profil(request, username):
    if not request.user.is_authenticated():
        return render(request, 'blog/visitor.html')
    else:
        u = User.objects.get(username=username)
        user = request.user
        posts = Post.objects.filter(user=request.user)
        context = {'user': user, 'user_url':u,'posts': posts}
        return render(request, 'blog/profil.html', context)

这是我的索引视图

def IndexView(request):
    if request.user.is_authenticated():
       base_template_name = 'blog/base.html'
    else:
       base_template_name = 'blog/visitor.html'

    posts = Post.objects.all()

    return render(request, 'blog/index.html', 
                  {'posts':posts, 'base_template_name':base_template_name})

(除此之外还有其他解决办法吗?)

我的urls.py

url(r'^(?P<username>\w+)/$',  views.Profil, name = 'profil'),

从index.html到profil.html的链接如下所示:

<a href="{% url 'blog:profil' user.username %}">{{post.user.username }}</a>

问题在于,当我点击它与我登录的当前用户的链接时,而不是我点击它的用户

使用管理员登录并希望查看Ala的个人资料:

Link from 'Ala' to his profil

当我点击它时会显示在网址中:

http://127.0.0.1:8000/blog/imedadmin/应该是'Ala'而不是'imedadmin'。

2 个答案:

答案 0 :(得分:0)

在我看来,你可以在渲染函数中发送一个变量来查看,称之为isHim。登录用户是他自己,将其设置为true,如果不是,则将其设置为false。在您查看时,请使用{{if isHim}}进行检查,然后启用/禁用编辑按钮。我已经使用过了,它已经回答了。

答案 1 :(得分:0)

您可以执行以下操作:

{% if request.user.id == post.user.id %}
 # ur code {% endif %}

在模板目录中。