我正在努力在名为Business
的应用中添加一些业务详细信息作为上下文处理器。我在templatetags
和__init__.py
文件中添加了一个标题为business_tags.py
的文件夹。我的问题是当上下文处理器显示结果时,我无法将结果显示为循环。
business_tags.py文件:
from django import template
register = template.Library()
from django.contrib.auth.models import User
from ..models import Businessprofile
@register.simple_tag
def my_biz(request):
current_user = request.user.id
biz = Businessprofile.objects.filter(owner=current_user)
return biz
在我的视图文件中,我目前为循环创建了for / endfor:
<!--content-->
{% load business_tags %}
{% my_biz request %}
{% for biz in my_biz %}
{{ biz }}
{% endfor %}
<!--end content-->
如何将上下文处理器的结果显示为for循环?
答案 0 :(得分:0)
您的简单标记只是返回对象(它不保存在“my_biz”中),您需要以这种方式将返回值保存在变量中:
{% my_biz request as my_biz_var %}
{% for biz in my_biz_var %}
{{ biz }}
{% empty %}
my_biz_var is empty
{% endfor %}
Aditional note :DaniDaniel Roseman指出,你所做的不是上下文处理器,而是一个简单的标签。
上下文处理器: https://docs.djangoproject.com/en/1.11/ref/templates/api/#django.template.RequestContext
简单标签:
https://docs.djangoproject.com/en/1.11/howto/custom-template-tags/#simple-tags