我正在做一个项目,让用户创建博客,并允许其他用户评论彼此blogs.When用户创建一个博客,他们有一定的能力,博客所有者可以做的,如删除自己的评论,我删除评论的方式是通过超链接传递值id。每个人都可以看到彼此的博客,但我只想向博客的所有者显示删除超链接,所以只显示创建博客的用户。我该怎么做呢?via模板
我的模型
class Blog(models.Model):
user = models.ForeignKey(User)
name = models.CharField(max_length=100)
created = models.DateTimeField(auto_now_add=True)
description = models.TextField()
def Bloglook(request ,animal_id):
Blog = Blog.objects.get(pk=animal_id)
return render(request,'blog.html',{blog':blog})我的blog.html
{% if blog %}
{{blog.name%}}
{% endif %}我如何才能将此链接仅显示给博客的创建者?
<a href="{% url world:BlogDelete blog.id %}"> Delete blog</a>发布于 2013-04-27 14:07:20
使用RequestContext传递给模板,该模板将request.user变量传递给模板,您可以使用该变量检查博客的所有者。
更改视图以将RequestContext用作
def Bloglook(request ,animal_id):
Blog = Blog.objects.get(pk=animal_id)
return render_to_response('blog.html',{blog':blog},
context_instance = RequestContext(request))然后在模板中执行
{% if blog.owner == request.user %}
<a href="{% url world:BlogDelete blog.id %}"> Delete blog</a>
{%endif%}发布于 2013-04-27 14:06:46
{% if request.user==blog.user %}<a href="{% url world:BlogDelete blog.id %}"> Delete blog</a>{% endif %}编辑:
这也将对未授权的用户隐藏。只有当用户是所有者时,他才会看到删除链接
此外,您可以继续使用render,无需更改为render_to_response.
https://stackoverflow.com/questions/16248886
复制相似问题