Question

J'ai activé le processeur de demande de django

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",
)

Cependant, je ne dois pas demander variable disponible dans les modèles. J'ai passer manuellement. En utilisant django 1.0.2 Partout sur le web, il semble qu'il est seulement activé processeur demande ..

J'utilise aussi RequestContext que:

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

pas de chance

ohh sacrément le nouveau nom qui est TEMPLATE_CONTEXT_PROCESSORS

Était-ce utile?

La solution

settings.py:

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

Autres conseils

TEMPLATE_CONTEXT_PROCESSORS au lieu de TEMPLATE_PROCESSORS

Sachez que de Django 1.8, cela a changé un réglage « TEMPLATES », et dans la configuration par défaut, le processeur de requête est non inclus.

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',
        ],
    },
},]

Il suffit d'ajouter le processeur de demande de retour pour résoudre le problème:

'django.core.context_processors.request',

Pour plus d'informations, consultez les Django Mise à niveau Docs .

Êtes-vous sûr que vous n'avez pas la variable request disponible pour le modèle? Qu'est-ce qui se passe lorsque vous supprimez la ligne

'request':request,

qui est différent de quand cette ligne est présente. Si votre modèle charge le même de toute façon, le problème est avec votre modèle.

MIDDLEWARE_CLASSES = ( ... 'Yourfolder.yourfile.yourclass', ... YourClass:

classe AddRequestToTemplate: process_templaet_response (self, demande, réponse): response.context_data [ 'demande'] = demande

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top