Джанго-частно гледка е Django приложение, което осигурява общ модел в сайтове е, когато няколко страници са защитени и изискват данни за вход, за да бъдат достъпни & Nbsp;. Thelogin_required декоратор често е по-удобен за тези ситуации. Но, още един модел, който е често срещано явление е, когато повечето от сайта е защитено, само с няколко изключения на страници, които остават публична (напр FrontPage, регистрация на страници и т.н.). В този случай, тя може да бъде доста досадно да украсят всички мнения сlogin_required, и тя може да бъде лесно да се забрави, за да украсят някои от тях.
Джанго-частно възгледи защитава всеки изглед и след това ви дава възможност да изрично да се каже коя е видяна трябва да са публични. Това прави неща, както по-лесно и по-малко податливи на грешка.
<Силен> Монтаж
Инсталирайте Django-частно гледки от PyPI.
PIP инсталирате Django-частните гледки
Добави мидълуер privateviews вашите настройки:
MIDDLEWARE_CLASSES = (
& Nbsp; ...
& Nbsp; privateviews.middleware.LoginRequiredMiddleware
)
<Силен> Деклариране обществени възгледи
В този момент, всички от вашите възгледи, освен settings.LOGIN_URL ще изискват от вас да влезете. И така, сега ние трябва да се определят няколко Гледките, които трябва да бъдат публично достояние. Има три различни начина на ваше разположение: с помощта на специален декоратор, като са изброени и обществени възгледи, или регистрационни обществени пътища на URL.
Използването декоратор
Използванетоlogin_not_required можете да изрично да принуди оглед да бъде публична. Например:
от privateviews.decorators login_not_required внос
login_not_required
Def FrontPage (искане):
& Nbsp; ...
В този случай, изгледа с FrontPage ще се покаже правилно, дори ако & rsquo; повторно не се идентифицирали.
Обявата обществени възгледи
Ако нямаш & rsquo; т имат пряк достъп до модифициране оглед & rsquo; ите код (например, тя & rsquo; ите в изпълнение на трета страна), все още можете да накарате тази цел да бъде публично, като я добавите към настройката по PUBLIC_VIEWS във файла с настройки. Ето & rsquo; един пример, ако & rsquo; повторно използване на системата за django.contrib.auth и прилагането на Джанго регистрация:
PUBLIC_VIEWS = [
& Nbsp; "django.contrib.auth.views.login",
& Nbsp; "django.contrib.auth.views.password_reset_done",
& Nbsp; "django.contrib.auth.views.password_reset",
& Nbsp; "django.contrib.auth.views.password_reset_confirm",
& Nbsp; "django.contrib.auth.views.password_reset_complete",
& Nbsp; "registration.views.register",
& Nbsp; "registration.views.activate",
]
<Силен> Обява URL обществени пътища
Третият и последен път е да зададете директно пътеките URL (като регулярни изрази) за страниците, които искате да бъдат публични. Това може да бъде полезно, например, ако една страница е постановено от родово изглед. Също така е полезно, ако обслужването на вашите мултимедийни файлове статично чрез Django (препоръчително само в режим на развитие). За тази цел е необходима, за да добавите PUBLIC_PATHS определящи във файла с настройки. Ето & rsquo; един пример:
PUBLIC_PATHS = [
& Nbsp; '^% S'% MEDIA_URL,
& Nbsp; '^ / сметки / Регистрация / пълна / $ ", # Използва" direct_to_template "генерично изгледа
]
<Силен> Осъществяване 404 гледания лично
В този момент не са регистрирани потребители все още ще бъде в състояние да видите 404 отговори ако посетите URL, който не отговаря на условието за оглед. Това не е идеален, тъй като не трябва да е възможно да се определи структурата на сайта, без да се идентифицирали.
За да бъде 404 гледания частните към всички, с изключение регистрирани потребители, добавете следното като крайната линия в горната си ниво urlconf:
urlpatterns = модели ('',
& Nbsp; ...
& Nbsp; URL (R "^", "privateviews.views.private_404")
)
<силни> Изисквания :
- Python
- Django
Коментари не е намерена