Django:包含多个参数的inclusion_tag

时间:2012-09-09 12:01:05

标签: django

我写了一个包含标签,用多个(可选)参数显示专辑评论。这是标签:

@register.inclusion_tag('reviews/review_trail.html')
def review_trail(review, coverPosition='left', scoreMode='corner', showLargeHeadings=False, wordsToShow=30):
return {
    'r' : review, 
    coverPosition: coverPosition, 
    scoreMode: scoreMode, 
    showLargeHeadings: showLargeHeadings, 
    wordsToShow: wordsToShow 
}    

我这样称呼标签:

{% review_trail review=r coverPosition="right" %}

除了reviews / r值之外,所有参数似乎都没有传递到我的HTML模板。如果我在包含标记内记录参数,我会看到它们正确传递,但是当我在review_trail.html中输出它们时,它们都是空白的。我使用了错误的语法,还是不可能以这种方式使用多个参数?使用Django 1.4和the docs seem to suggest this is fine

1 个答案:

答案 0 :(得分:2)

您没有对字典中的所有键使用单引号,因此python正在使用变量的值来代替键的名称。

将其更改为:

return {
    'r': review, 
    'coverPosition': coverPosition, 
    'scoreMode': scoreMode, 
    'showLargeHeadings': showLargeHeadings, 
    'wordsToShow': wordsToShow 
}