Я довольно новичок в django и считаю, что это вопрос django, связанный с шаблоном. У меня есть шаблон проекта, в котором есть определенное значение, а именно {{tenant_name}}, которое сообщает имя арендатора. Я использовал для l oop, чтобы найти все имена арендаторов, которые отлично работают.
Как бы то ни было, все арендаторы имеют единицы под ними, и когда я пытаюсь отобразить единицы на каждого арендатора с помощью для l oop он передает все устройства всем арендаторам, что я не хочу делать. примечание: в этом случае нельзя использовать self.tenant, поскольку у пользователя еще нет арендатора.
Я пытался решить эту проблему с помощью пользовательского фильтра, зарегистрировав его и загрузив в шаблон, а затем применив фильтрацию следующим образом: {{tenant_name | filter_units}}, однако для некоторых это не работает причина. У меня такой вопрос: возможно ли извлечь tenant_name из шаблона в фильтр, использовать это значение в фильтре для поиска единиц и вернуть его обратно в шаблон? Если да, не могли бы вы показать мне, как? Если это невозможно, есть ли лучший способ сделать это?
Заранее спасибо.
РЕДАКТИРОВАТЬ: некоторый код, который я пробовал до сих пор:
filter: (Примечание: 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')
Part шаблона:
{% load filter_units %}
{% for unit in units %}
{{ unit.tenant_name|filter_units }}
{% endfor %}