سؤال

لقد قمت بتمكين معالج طلب جانغو

TEMPLATE_PROCESSORS = (
"django.core.context_processors.auth",
"django.core.context_processors.debug",
"django.core.context_processors.i18n",
"django.core.context_processors.media",
"django.core.context_processors.request",
)

ما زلت لا أحتاج إلى طلب المتغير المتاح في القوالب.لقد لتمريرها يدويا.باستخدام Django 1.0.2 في كل مكان على الويب ، يبدو الأمر يتعلق فقط بمعالج طلب التمكين ..

كما أنني أستخدم RequestContext على النحو التالي:

 return render_to_response(
    'profile.html',
    {
        'persons':Person.objects.all(),
        'person':Person.objects.get(id=id),
         'request':request,
    },
    context_instance=RequestContext(request)
)

لا حظ

يا رتق الاسم الجديد لذلك TEMPLATE_CONTEXT_PROCESSORS

هل كانت مفيدة؟

المحلول

إعدادات.py:

TEMPLATE_CONTEXT_PROCESSORS = (
  # ...
  'django.core.context_processors.request',
  # ...
)

نصائح أخرى

template_context_processors بدلاً من template_processors

يرجى العلم أنه اعتبارًا من Django 1.8، تغير هذا إلى إعداد "القوالب"، وفي التكوين الافتراضي، لم يتم تضمين معالج الطلب.

TEMPLATES = [
{
    'BACKEND': 'django.template.backends.django.DjangoTemplates',
    'DIRS': [
        # insert your TEMPLATE_DIRS here
    ],
    'APP_DIRS': True,
    'OPTIONS': {
        'context_processors': [
            # Insert your TEMPLATE_CONTEXT_PROCESSORS here or use this
            # list if you haven't customized them:
            'django.contrib.auth.context_processors.auth',
            'django.template.context_processors.debug',
            'django.template.context_processors.i18n',
            'django.template.context_processors.media',
            'django.template.context_processors.static',
            'django.template.context_processors.tz',
            'django.contrib.messages.context_processors.messages',
        ],
    },
},]

ما عليك سوى إضافة معالج الطلب مرة أخرى لإصلاح المشكلة:

'django.core.context_processors.request',

لمزيد من المعلومات، راجع جانغو ترقية المستندات.

هل أنت متأكد من أنك لا تملك request المتغير المتاح للقالب؟ماذا يحدث عند إزالة الخط

'request':request,

وهذا يختلف عن وقت وجود هذا الخط.إذا تم تحميل القالب الخاص بك بنفس الطريقة في كلتا الحالتين، فإن المشكلة تكمن في القالب الخاص بك.

middleware_classes = (..."Yourfolder.yourfile.yourclass" ، ...فصلك:

فئة AddRequestToTemplate:Process_templaet_response(الذات، الطلب، الاستجابة):Response.context_data['request']=request

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top