我对django相当陌生,我相信这是django模板相关的问题。我有一个项目模板,其中有一个特定值,即{{tenant_name}},该值告诉租户名称。我已经使用for循环找出所有可以正常工作的租户名称。
但是,所有租户下面都有单元,当我尝试使用for循环显示每个租户的单元时,它将所有单元循环到所有租户,这不是我想要的。注意:在这种情况下,由于用户还没有租户,因此无法使用self.tenant。
我尝试使用自定义过滤器来解决此问题,方法是将其注册并加载到模板中,然后像这样进行过滤:{{tenant_name | filter_units}},但是由于某些原因,这似乎不起作用。我的问题是:是否可以从模板中将tenant_name提取到过滤器,使用过滤器中的值搜索单位并将其返回到模板?如果是这样,您能告诉我如何?如果不可能,是否有更好的方法来实现?
先谢谢了。
编辑:到目前为止,我已经尝试过的一些代码:
过滤器:(注意:get_accepted_list是导入的函数,用于查找单位,并且可以使用)
from tenant.api import get_accepted_list
from django import template
register = template.Library()
@register.filter(name='filter_units')
def find_tenant_units(request):
tenant = getattr(request, 'tenant_name', None)
return get_accepted_list(tenant_name=tenant).order_by('tenant_name', 'id')
模板的一部分:
{% load filter_units %}
{% for unit in units %}
{{ unit.tenant_name|filter_units }}
{% endfor %}