Декоратор - это модное слово для функции, которая оборачивает другую функцию.login_required
- это функция-оболочка для вида, а permission_required
создает оболочку для вашего вида.Другими словами, login_required
сам является декоратором, а permission_required(perm)
создает декоратор.
from django.conf.urls import url
from django.contrib.auth.decorators import login_required, permission_required
urlpatterns = [
url(r'^public/', myview),
url(r'^users_only/',
login_required(myview)),
url(r'^users_with_perms/',
permission_required('myapp.view_mymodel', login_url='login')(myview)),
url(r'^login_page/', myloginview, name='login'),
]