![](/img/trans.png)
[英]Django: Invalid block tag on line 14: 'endblock', expected 'endfor'. Did you forget to register or load this tag?
[英]Django : Invalid block tag on line 121: 'popular_products', expected 'endblock'. Did you forget to register or load this tag?
我的項目中有一個自定義模板標簽,一切看起來都很好,但是當我想使用這個模板標簽時,我得到了這個錯誤:
第 122 行的塊標記無效:“popular_products”,應為“endblock”。 您是否忘記注冊或加載此標簽?
base_tags.py:
from django import template
from django.db.models import Count, Q
from datetime import datetime, timedelta
from shop.models import Product
register = template.Library()
@register.inclusion_tag('shared/partials/popular_product_slider.html')
def popular_products():
last_week = datetime.today() - timedelta(days=7)
return {
"popular_products": Product.objects.filter(available=True).annotate(
count=Count('hits', filter=Q(producthit__date__gt=last_week))).order_by(
'-count', '-created')[:3]
}
home_page.html 模板:
{% extends 'shared/_base.html' %}
{% load base_tags %}
{% load i18n %}
{% load render_partial %}
{% load static %}
{% load ratings %}
{% load thumbnail %}
{% block content %}
<div class="row">
<div class="col-lg-12">
<div class="tab-content">
<div id="recent" class="tab-pane fade show active">
<div class="row product-slider">
{% popular_products %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
popular_product_slider.html
{% for product in popular_products %}
{{product.image}}
{{product.detail}}
{{product.title}}
{% endfor %}
視圖.py
def home_page(request):
context = {}
return render(request, 'Home_page.html', context)
您需要將您的代碼放在 home_page.html 塊中。 xxx 是您放置在 _base.html 中的塊的名稱
{% block xxx %}
<div class="row">
<div class="col-lg-12">
<div class="tab-content">
<div id="recent" class="tab-pane fade show active">
<div class="row product-slider">
{% popular_products %}
</div>
</div>
</div>
</div>
</div>
{% endblock %}
您錯誤地使用了{% popular_products %}
。 您應該使用{% include 'popular_product_slider.html' %}
將popular_product_slider.html
實現到home_page.html
中。
如果您使用帶百分號 ( {% %}
) 的大括號,則第一個值將作為命令。 並且 file 沒有將popular_products
識別為命令,它引發了Error
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.