Найти необходимые разрешения URL-адресов Django, не вызывая их?

Мое приложение Django в настоящее время имеет URL-адреса, защищенные функциями 'permission_required()'.

Эта функция вызывается тремя разными способами.

  1. В качестве декоратора в views.py с жестко заданными параметрами.
  2. В виде простой функции с автоматически сгенерированным параметром в настраиваемых общих представлениях на основе классов.
  3. Как функция, вызывающая представления в urls.py, с жестко заданными параметрами.

Сейчас я добавляю в приложение систему меню, и мне нужно, чтобы пункты меню отражали, есть ли у пользователя разрешение на запрос URL-адреса каждого пункта меню. (Выделяя серым цветом или скрывая указанные записи.)

Есть ли способ запросить разрешения, необходимые для URL-адреса беззапроса URL-адреса?

Единственное решение, о котором я до сих пор думал, — это заменить декоратор декоратором без параметров «menu_permssion_required()» и жестко закодировать все разрешения в структуру Python. Это похоже на шаг назад, поскольку мои пользовательские общие представления на основе классов уже автоматически генерируют необходимые разрешения.

Есть предложения по созданию системы меню, отражающей разрешения URL для текущего пользователя?

7
задан fadedbee 10 June 2012 в 05:08
поделиться