اذهب إلى المحتوى

السؤال

نشر

أقوم في المشروع الخاص بي بإضافة المزخرف decorator المسمى login_required بالشكل التالي:

@login_required
def myview():
    # ...
    pass

لكن أريد أن يتم توجيه المستخدم إلى صفحة تسجيل دخول معينة، كيف أقوم بتحديد عنوان URL مُخصص في الكود السابق في جانغو Django؟

Recommended Posts

  • 1
نشر (معدل)

هذه هي الطريقة لفعل ذلك:

@login_required(login_url="home")
def userAccount(request):
    profile = request.user.profile

    context = {'profile': profile}
    return render(request, 'base/account.html', context)

في ملف URL:
 

urlpatterns = [
	path('', views.home, name="home"),
]

 

تم التعديل في بواسطة محمد حجي2
  • 1
نشر

تُريد ان توجه المستخدم الى صفحة تسجيل معينة سنقوم بتحديد URL مخصص لتوجيه المستخدم لصفحة تسجيل الدخول هاد الlogin_required decorator@ يقوم بفحص المستخدم هل مُسجل دخول اذا لم يسجل دخوله سيحوله تلقائي للصفحة التي سيتم توجيهه لها سنقوم بعمل التالي اولاً تخصيص URL لصفحة تسجيل الدخول:

from myapp.views import login_page
urlpatterns = [
path('auth/login-page', login_page, name='login_page'),
]

سنقوم بعد ذلك بإنشاء دالة الlogin_page التي ستعمل على تحويل المستخدم لصفحة التسجيل التي تريد تحويله لها:

def login_page(request):
    if request.method == 'POST':
  	''' 
    	email = request.POST['email']
        password = request.POST['password']
        POST خطوات عملية تسجيل الدخول عند ارسال البيانات اذا كان الطلب
        ..
     	..
        '''
    return render(request, 'auth/login.html') #وسيتم تحويل المستخدم الى الصفحة المخصصة لتسجيل الدخول GET في الحالة العادية عند طلب الرابط سيكون الطلب 

اخيراً سنُخبر الDjango ان اي عملية فحص من ال login_required ولم يكن المستخدم مُسجل دخول يتم تحويله الى الURL الذي قمنا بتخصيصه في الكود السابق سيتم ذلك في ملف settings.py تقوم بإضافة هذا المُعرف :

# in settings.py file

LOGIN_URL = '/auth/login-page' 

وهكذا قمنا بتخصيص الURL الموجه لصفحة تسجيل دخول محددة.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...