比较django if块中的两个django变量

时间:2018-11-27 17:30:42

标签: python django

我在下面的代码上遇到了困难。

{% if object.author == user.username %} 

该代码无法正常工作,也不会出错。

所以我的django项目中有文章应用程序。我想确保如果用户转到自己的帖子,那么只有他们应该能够看到删除和编辑链接(如果阻止,我会将其放置在其中)。

Article模型如下:

class Article(models.Model):
title = models.CharField(max_length=255)
body = models.TextField()
date = models.DateTimeField(auto_now_add=True)
author = models.ForeignKey(
    settings.AUTH_USER_MODEL,
    on_delete=models.CASCADE,
)

def __str__(self):
    return self.title

def get_absolute_url(self):
    return reverse('article_detail', args=[str(self.id)])

这里

{{user.username}}

{{object.author}}

都是有效的django变量。

{{user.username}}

指定当前登录用户的用户名

{{object.author}}

指定该特定帖子的作者。

请帮助我实现两个变量的比较逻辑。我正在使用python 3.6,django 2.1和django模板语言。

1 个答案:

答案 0 :(得分:0)

如果您发布模型(并正确设置文本格式),您的问题将更容易回答。

我假设object.author实际上是User模型的ForeignKey。因此,您应该直接与用户进行比较,而不是与用户的username属性进行比较:

{% if object.author == user %}