django tag' get_recent_articles'收到了太多的位置论点

时间:2017-05-10 08:31:14

标签: python django

我正在尝试在我博客的侧边栏中创建最近的文章列表。所以我在templatetags中制作了一个标签 我使用django1.8和python2.7 templatetags / blog_tags.py

from ..models import Article,Category
from django import template
from django.utils.safestring import mark_safe
register = template.Library()

@register.simple_tag
def get_recent_articles(num=5):
    return Article.objects.all()[:num]

base.html文件

{% load blog_tags %}
<!DOCTYPE html>
...
<div class="widget widget-recent-posts">        
    <h3 class="widget-title">recent</h3>
        {% get_recent_articles as article_list %}
    <ul>
        {% for article in article_list %}
        <li>
        <a href="{{ article.get_absolute_url }}">{{ article.title }}</a>
        </li>
        {% endfor %}
    </ul>
</div>

当我运行服务器时,模板错误,回溯显示问题行是{%get_recent_articles as article_list%}

TemplateSyntaxError at /blog/index/
'get_recent_articles' received too many positional arguments

如何解决此错误?请给我一些建议。 任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

Django 1.9中添加了简单标签将结果存储在变量中的能力。

在以前的版本中,您应该使用assignment_tag装饰器。