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

السؤال

نشر

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

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

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

Recommended Posts

  • 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 الموجه لصفحة تسجيل دخول محددة.

  • 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

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

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

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

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...