NSProject
NSProjectAug. 16, 2023, 3:29 p.m.

Передача списка в custom templatetags Django

Django

Доброго времени суток. Я пытаюсь реализовать доступ к определённым функциям сайта по названию группы.
И что б не проверять всё примерно таки образом

{% if request.user.groups.first.name == 'admin' %}
My code html
{% elif request.user.groups.first.name == 'superuser' %}
My code html
{% endif %}

Хотел сделать templatetags и передавать в него два аргумента request.user и список групп у которых есть доступ. Но выходит что я не могу передать список. Как это реализовать есть идеи?

We recommend hosting TIMEWEB
We recommend hosting TIMEWEB
Stable hosting, on which the social network EVILEG is located. For projects on Django we recommend VDS hosting.

Do you like it? Share on social networks!

5
NSProject
  • Aug. 18, 2023, 4:24 a.m.

Похоже я вновь задал вопрос себе и сам хочу ответить. Сформировать массив в html можнр или передать его из view. Но в моём случае это лишнее. По этому пришёл к идее что можно просо передавать строку и разбирать её как нужно.
В итоге вышло что то вроде этого.

{% if request.user|accessmoderate:'admin, moderator, SuperUser' %}

@register.filter()
def access_moderate(user, list_access):
    usergroup = user.groups.first().name
    list_access = list_access.split(',') 
    for item in list_access:
       if usergroup == item:
           return True

    return False

Это в общем то база что мне и была нужна. Из минусов отмечу тот факт чтоб изменить группы доступаа нужно лопатить шаблоны и менять вручную. А так всё

    Evgenii Legotckoi
    • Aug. 18, 2023, 1:09 p.m.

    Можно ещё добавить метод в модель пользователя в котором проверять наличие пользователя в той или иной группе

    {% if request.user.is_moderator %}
    
    {% endif %}
    
      NSProject
      • Aug. 18, 2023, 1:37 p.m.

      Да в принципе можно и так но это дополнительные поля опять же. А я подумал чисто от группы зависит условие. И в принципе на данный момент оно меня устраивает, а уже дальше будет видно. Единственное изменение это конфигурация в settings и работает.
      Главной целью было чтоб не передавать из view чтоб самому не запутаться. А так пока что работает. В дальнейшем может напишу каку систему для универсальности. Может быть )))

        Evgenii Legotckoi
        • Aug. 18, 2023, 2:17 p.m.
        • The answer was marked as a solution.

        Вообще я имел ввиду добавить метод, а не поле

          NSProject
          • Aug. 18, 2023, 2:21 p.m.

          Ну да кстати как вариант. Надо подумать над этим. Спасибо за подсказку.

            Comments

            Only authorized users can post comments.
            Please, Log in or Sign up
            Дмитрий

            C ++ - Test 004. Pointers, Arrays and Loops

            • Result:60points,
            • Rating points-1
            Дмитрий

            C++ - Тест 003. Условия и циклы

            • Result:92points,
            • Rating points8
            d
            • dsfs
            • April 26, 2024, 4:56 a.m.

            C ++ - Test 004. Pointers, Arrays and Loops

            • Result:80points,
            • Rating points4
            Last comments
            k
            kmssrFeb. 8, 2024, 6:43 p.m.
            Qt Linux - Lesson 001. Autorun Qt application under Linux как сделать автозапуск для флэтпака, который не даёт создавать файлы в ~/.config - вот это вопрос ))
            Qt WinAPI - Lesson 007. Working with ICMP Ping in Qt Без строки #include <QRegularExpressionValidator> в заголовочном файле не работает валидатор.
            EVA
            EVADec. 25, 2023, 10:30 a.m.
            Boost - static linking in CMake project under Windows Ошибка LNK1104 часто возникает, когда компоновщик не может найти или открыть файл библиотеки. В вашем случае, это файл libboost_locale-vc142-mt-gd-x64-1_74.lib из библиотеки Boost для C+…
            J
            JonnyJoDec. 25, 2023, 8:38 a.m.
            Boost - static linking in CMake project under Windows Сделал всё по-как у вас, но выдаёт ошибку [build] LINK : fatal error LNK1104: не удается открыть файл "libboost_locale-vc142-mt-gd-x64-1_74.lib" Хоть убей, не могу понять в чём дел…
            G
            GvozdikDec. 18, 2023, 9:01 p.m.
            Qt/C++ - Lesson 056. Connecting the Boost library in Qt for MinGW and MSVC compilers Для решения твой проблемы добавь в файл .pro строчку "LIBS += -lws2_32" она решит проблему , лично мне помогло.
            Now discuss on the forum
            G
            George13May 7, 2024, 12:27 a.m.
            добавить qlineseries в функции в функции: "GPlotter::addSeries(QString title, QVector &arr)" я вызываю метод setChart(...), я в конструктор передал адрес на QChartView элемент
            BlinCT
            BlinCTMay 5, 2024, 5:46 a.m.
            Написать свой GraphsView Всем привет. В Qt есть давольно старый обьект дял работы с графиками ChartsView и есть в 6.7 новый но очень сырой и со слабым функционалом GraphsView. По этой причине я хочу написать х…
            PS
            Peter SonMay 3, 2024, 5:57 p.m.
            Best Indian Food Restaurant In Cincinnati OH Ready to embark on a gastronomic journey like no other? Join us at App india restaurant and discover why we're renowned as the Best Indian Food Restaurant In Cincinnati OH . Whether y…
            Evgenii Legotckoi
            Evgenii LegotckoiMay 2, 2024, 2:07 p.m.
            Мобильное приложение на C++Qt и бэкенд к нему на Django Rest Framework Добрый день. По моему мнению - да, но то, что будет касаться вызовов к функционалу Андроида, может создать огромные трудности.
            IscanderChe
            IscanderCheApril 30, 2024, 4:22 a.m.
            Во Flask рендер шаблона не передаётся в браузер Доброе утро! Имеется вот такой шаблон: <!doctype html><html> <head> <title>{{ title }}</title> <link rel="stylesheet" href="{{ url_…

            Follow us in social networks