Django добавить разрешение на доступ к URL до вызова методов просмотра - PullRequest
0 голосов
/ 01 мая 2018
urlpatterns = patterns('',
url(r'^A/$', 'django.contrib.auth.views.login'),
url(r'^B/$', logout_page),
url(r'^C/$', c_method),
url(r'^D/$', D_method),)

В приведенной выше конфигурации URL я хотел бы разрешить только маршрутизатор A для определенного набора пользователей, а оставшиеся B, C и D для определенного набора пользователей. Как я могу сделать это с помощью конфигурации URL.

Обратите внимание, мое приложение уже имеет около 80 URL'ов, теперь я не могу редактировать и добавлять разрешения для каждого метода. Так что я пытаюсь сделать, как только URL будет вызван, он должен пройти через разрешение, прежде чем он фактически вызовет методы views. Пожалуйста, дайте мне знать, как я могу это сделать.

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете создать Custum Decorator следующим образом:

from django.core.exceptions import PermissionDenied
    def your_decorator_name(function):
        def wrap(request, *args, **kwargs):
            your condition
            if your conditioon is true == True:
                 return function(request, *args, **kwargs)
            else:
                 raise PermissionDenied

        wrap.__doc__ = function.__doc__
        wrap.__name__ = function.__name__
        return wrap

и используйте его в таком режиме

from ur_file_location import your_decorator_name
    @your_decorator_name
    def permision_demo(request):
        return 'hola'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...