模板语法错误。无法解析余数(Django)

时间:2019-03-02 13:35:41

标签: python django django-models

有人可以指出我正确的方向吗?以下是我一直在做的事情

    <p>{{article.snippet}}</p>
    <p>{{article.date}}</p>
    <p>{{article.retrieve_by_category("web")}}</p>

获取日期或摘要没有问题,但是尝试运行article.retireve_by_category时仍然出现以下错误。

  

无法解析其余部分:'(“ web”)'from'article.retrieve_by_category(“ web”)'

下面是该模型的代码:

class Article(models.Model):
    category = models.CharField(max_length=100)
    title = models.CharField(max_length=100)
    slug = models.SlugField()
    body = models.TextField()
    date = models.DateTimeField(auto_now_add=True)
    #add in thumbnail

    def __str__(self):
        return self.title

    def snippet(self):
        return self.body[:500] + "..."

    def retrieve_by_category(self,category):
        """retrieves blogs based on their category"""
        if (str(self.category) == category):
            return self.category
        return ''

2 个答案:

答案 0 :(得分:1)

您不能在模板内调用函数。最好在您的视图中进行处理,下面是一个简单的示例:

def your_view(request):

   article = Article.objects.filter(category="web")

   return render(request, "/toyourtemplate", {'web':article})

如果要使类别动态用户输入,可以使用Django表单

答案 1 :(得分:0)

不能使用类似于模板标签的功能

<p>{{article.snippet}}</p>
<p>{{article.date}}</p>
<p>{{article.retrieve_by_category("web")}}</p>  # this is wrong

您可以改成custom template tags