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

السؤال

نشر

إذا قمت بتعين متغير في الجلسة بالشكل التالي:

request.session["name"] = "mohssen"

 

هل هناك طريقة يمكنني من خلالها الوصول إلى المتغير السابق من داخل قالب template، أو هل يتعين علي استعادته من داخل العرض view، ثم تمريره إلى القالب template؟

السؤال لأن لدي حوالي 10 متغيرات جلسة أرغب في الوصول إليها داخل قالب ، وأعتقد أن تمرير 10 متغيرات لن يكون سهلًا، لذلك كنت أتسأل ما إذا كان هناك طريقة للحصول على متغيرات الجلسة مباشرة داخل القوالب templates؟

Recommended Posts

  • 1
نشر (معدل)

بداية تعد session قاموس عادي أو Dictionary يمكنك التعامل مع محتواه علي هذا الأساس , فمثلا للوصول إلى 

request.session["name"] = "your Name"

يمكنك تنفيذ 

print(request.session["name"])

ولكن بداخل القالب أو template سيتغير الحال قليلا إلى الشكل التالي:

<h2> {{ request.session.name }} </h2>

قد تواجه مشكلة عدم ظهور request بشكل عام داخل مشروع Django الخاص بك وهذا وارد في بعض إصدارات Django والسبب عدم التصريح بإستعمال request داخل template ولكن يمكنك حلها من خلال إضافة 

'django.template.context_processors.request'

إلي TEMPLATES بملف settings.py الخاص بك لتبدو مثلا هكذا

settings.py

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            .... بالتأكيد هناك خيارات أخري
            'django.template.context_processors.request', السطر الذي نريد اضافته
            'django.contrib.auth.context_processors.auth',
            .....
            ],
        },
    },
]

ثم اعد تجربة

<h2> {{ request.session.name }} </h2>

 

تم التعديل في بواسطة Mohammed_Emad

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

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

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

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

  • إعلانات

  • تابعنا على



×
×
  • أضف...