首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Django显示仅指向对象创建者的超链接

问Django显示仅指向对象创建者的超链接
EN

Stack Overflow用户
提问于 2013-04-27 14:01:16
回答 2查看 95关注 0票数 0

我正在做一个项目,让用户创建博客,并允许其他用户评论彼此blogs.When用户创建一个博客,他们有一定的能力,博客所有者可以做的,如删除自己的评论,我删除评论的方式是通过超链接传递值id。每个人都可以看到彼此的博客,但我只想向博客的所有者显示删除超链接,所以只显示创建博客的用户。我该怎么做呢?via模板

我的模型

代码语言:javascript
复制
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

代码语言:javascript
复制
{% if blog %}
    {{blog.name%}}
{% endif %}

我如何才能将此链接仅显示给博客的创建者?

代码语言:javascript
复制
<a  href="{% url world:BlogDelete blog.id %}"> Delete blog</a>
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-27 14:07:20

使用RequestContext传递给模板,该模板将request.user变量传递给模板,您可以使用该变量检查博客的所有者。

更改视图以将RequestContext用作

代码语言:javascript
复制
def Bloglook(request ,animal_id):
    Blog = Blog.objects.get(pk=animal_id)
    return render_to_response('blog.html',{blog':blog}, 
             context_instance = RequestContext(request))

然后在模板中执行

代码语言:javascript
复制
{% if blog.owner == request.user %}
     <a  href="{% url world:BlogDelete blog.id %}"> Delete blog</a>
{%endif%}
票数 1
EN

Stack Overflow用户

发布于 2013-04-27 14:06:46

代码语言:javascript
复制
{% if request.user==blog.user %}<a  href="{% url world:BlogDelete blog.id %}"> Delete blog</a>{% endif %}

编辑:

这也将对未授权的用户隐藏。只有当用户是所有者时,他才会看到删除链接

此外,您可以继续使用render,无需更改为render_to_response.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16248886

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档