Django 1.9 या django-braces का उपयोग कर
Django 1.9 ने एक LoginRequiredMixin पेश किया है जो इस प्रकार प्रयोग किया जाता है:
from django.contrib.auth.mixins import LoginRequiredMixin
class MyView(LoginRequiredMixin, View):
login_url = '/login/'
redirect_field_name = 'redirect_to'
यदि आप django के पुराने संस्करण का उपयोग कर रहे हैं, तो आप django-braces से बहुत समान मिक्सिन का उपयोग कर सकते हैं - Django संस्करण django-braces संस्करण पर आधारित था। django-braces 1.4.x अभी भी Django 1.4 का समर्थन करता है ताकि आप इसे पुराने संस्करणों के साथ उपयोग कर सकें।
पुराने तरीके
कक्षा आधारित विचारों को कैसे सजाया जाए, इसके लिए मुझे यह प्रश्न मिला, इसलिए उसके लिए उत्तर जोड़ना है:
यह वर्ग आधारित विचारों को सजाने पर प्रलेखन खंड में शामिल है । नहीं है urls.pyआवरण, या आप के लिए आवेदन कर सकते हैं डेकोरेटर dispatch()विधि। प्रलेखन से उदाहरण:
URL कॉन्फिडेंस में सजा
from django.contrib.auth.decorators import login_required, permission_required
from django.views.generic import TemplateView
from .views import VoteView
urlpatterns = patterns('',
(r'^about/', login_required(TemplateView.as_view(template_name="secret.html"))),
(r'^vote/', permission_required('polls.can_vote')(VoteView.as_view())),
)
कक्षा को सजाते हुए
from django.contrib.auth.decorators import login_required
from django.utils.decorators import method_decorator
from django.views.generic import TemplateView
class ProtectedView(TemplateView):
template_name = 'secret.html'
@method_decorator(login_required)
def dispatch(self, *args, **kwargs):
return super(ProtectedView, self).dispatch(*args, **kwargs)
अधिक विवरण के लिए ऊपर दिए गए दस्तावेज़ देखें।