বাংলায় জ্যাঙ্গো

ধরি আমাদের দুইটি url আছে এরকম

path('student/login', views.user_login, name='login'),
path('student/logout', views.user_logout, name='logout'),

এখন আমরা চাই, কোন ইউজার লগআউট করলে তাকে আবার লগিন পেজে নিয়ে যাবে । তাহলে আমরা  লগআউট ভিউ এ redirect() ফাংশনটিকে  কয়েকভাবে লিখতে পারি

১। url এর নাম লিখে ( name=’login’)

from django.shortcuts import redirect
from django.urls import reverse

def user_logout(request):
    logout(request)
    return redirect('login')

২। সরাসরি url লিখে

from django.shortcuts import redirect
from django.urls import reverse

def user_logout(request):
    logout(request)
    return redirect('/student/login')

৩। reverse() ফাংশন ব্যাবহার করে

from django.shortcuts import redirect
from django.urls import reverse

def user_logout(request):
    logout(request)
    return redirect(reverse('login'))

reverse() ফাংশন URL এর নামকে সরাসরি URL স্টাইলে রূপান্তর করে

python manage.py shell

>>> from django.urls import reverse
>>> reverse('login')
'/student/login'

৪। redirect() ফাংশন মডেল অবজেক্টকেও গ্রহন করে। অবজক্টটি  get_absolute_url() ফাংশনকে কল করে। 

from django.shortcuts import redirect

def my_view(request):
    ...
    obj = MyModel.objects.get(...)
    return redirect(obj)

বিস্তারিত দেখুন redirect(), reverse()

Leave a Reply

Your email address will not be published. Required fields are marked *