Как передать две переменные в simple_tag в шаблоне? - PullRequest
0 голосов
/ 10 января 2020

У меня есть simple_tag, который я использую для передачи переменных в метод модели, просмотра представления и фильтрации результатов в шаблоне:

Тег шаблона:

@register.simple_tag
def get_display_fields(obj, excluded_fields, adminonly_fields):
    if hasattr(obj, 'get_display_fields'):
        return obj.get_display_fields(excluded_fields, adminonly_fields)
    return []

Модель:

class MyModel(models.Model):
    def get_display_fields(self, excluded_fields=[], adminonly_fields=[])
        ...

Представление:

class CustomListView(ListView):
    excluded_fields = ['field1',]
    adminonly_fields = ['field2',]

    def get_context_data(self, **kwargs):
        context = super(ListView, self).get_context_data(**kwargs)
        context['excluded_fields'] = self.excluded_fields
        context['adminonly_fields'] = self.adminonly_fields

Шаблон:

{% for obj in object_list %}
    {% get_display_fields obj excluded_fields adminonly_fields as display_fields %}
    {{ display_fields.excluded_fields }}
    {{ display_fields.adminonly_fields }}
{% endfor %}

Однако, похоже, что вторая переменная не передается методу модели (так как отображает None для display_fields.adminonly_fields).

Где я иду не так?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...