django шаблон пользовательского фильтра - PullRequest
0 голосов
/ 24 марта 2020

Я довольно новичок в 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 %}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...