@login_required
@permission_required
@user_passes_test
@csrf_exempt
@cache_page
@require_http_methods
@login_required: নিশ্চিত করে যে ব্যবহারকারী ভিউ অ্যাক্সেস করার আগে লগ ইন করেছেন। ব্যবহারকারী প্রমাণীকৃত না হলে লগইন পৃষ্ঠায় পুনঃনির্দেশ করে।
from django.contrib.auth.decorators import login_required
@login_required
def my_view(request):
# Your view logic here
@permission_required: ব্যবহারকারীর অনুমতির উপর ভিত্তি করে ভিউতে অ্যাক্সেস সীমাবদ্ধ করে। ব্যবহারকারীর প্রয়োজনীয় অনুমতি না থাকলে লগইন পৃষ্ঠায় বা একটি নির্দিষ্ট ভিউতে পুনঃনির্দেশ করে।
from django.contrib.auth.decorators import permission_required
@permission_required('myapp.change_mymodel')
def my_view(request):
# Your view logic here
কিভাবে পারমিশন বানাতে হয় এ সম্পর্কে আরেকটি টিউটোরিয়াল সামনে দেয়া হবে এখানে বলা হয়েছে myapp এর mymodel এর change পারমিশন apply হবে এই ভিউটির জন্য আমরা এ সম্পর্কে সামনে জানবো বিস্তারিত।
@user_passes_test: একজন ব্যবহারকারী ভিউ অ্যাক্সেস করতে পারে কিনা তা নির্ধারণ করতে আপনাকে একটি কাস্টম পরীক্ষা ফাংশন সংজ্ঞায়িত করার অনুমতি দেয়।
from django.contrib.auth.decorators import user_passes_test
def test_func(user):
return user.is_staff
@user_passes_test(test_func)
def my_view(request):
# Your view logic here
@csrf_exempt: CSRF (ক্রস-সাইট অনুরোধ জালিয়াতি) সুরক্ষা থেকে দৃশ্যকে ছাড় দেয়। এই ডেকোরেটর ব্যবহার করার সময় সতর্ক থাকুন, কারণ এটি আপনার view কে নিরাপত্তার ঝুঁকিতে ফেলতে পারে।
from django.views.decorators.csrf import csrf_exempt
@csrf_exempt
def my_view(request):
# Your view logic here
@cache_page: একটি নির্দিষ্ট সময়ের জন্য ভিউ এর আউটপুট ক্যাশ করে, পরবর্তী অনুরোধের জন্য ক্যাশ করা সামগ্রী পরিবেশন করে কর্মক্ষমতা উন্নত করে।
from django.views.decorators.cache import cache_page
@cache_page(60 * 15) # Cache for 15 minutes
def my_view(request):
# Your view logic here
@require_http_methods: দেখার জন্য অনুমোদিত HTTP পদ্ধতি সীমাবদ্ধ করে।
from django.views.decorators.http import require_http_methods
@require_http_methods(["GET", "POST"])
def my_view(request):
# Your view logic here
Django তে আরো অনেক ডেকোরেটর আছে