Voici le contenu de MyProj/urls.py Comme vous pouvez le voir, les deux gestionnaires pointent vers la même vue, et la première, que je besoin le plus, ne fonctionne pas! Par exemple, les données de l'utilisateur d'un autre utilisateur sur [22 / janvier / 2019 08:39:14] "GET / obj / 12 HTTP / 1.1" 403 0 Mais le second fonctionne bien et affiche la page correcte (lorsque vous essayez d'accéder à des données non existantes à Le mode de débogage est désactivé. Ma version Django est 2.0.6 Mise à jour. Contenu du fichier handler403.py : La chaîne from django.shortcuts import render_to_response
def handler403(request, *args, **argv):
print('Handler 403 was called!')
u = request.user
params = {
'user': u,
}
response = render_to_response('403.html', params)
response.status_code = 403
return response
/ obj / 12
montrent la page 403 du navigateur par défaut:
/ obj / 768
). Pourquoi et comment puis-je le résoudre? Handler 403 a été appelée!
n'est jamais imprimée lorsque j'essaye d'obtenir cette page.
3 Réponses :
Si c'est vraiment votre fichier handler403 (aka. handler403.py
), vous voudrez probablement
handler403 = 'general.views.handler403.handler403'
(donc un chemin en pointillé vers l'appelable réel).
Non, cela n'aide pas, j'ai déjà essayé de spécifier le chemin de différentes manières. De plus, pour être précis, handler403
est stocké dans general.view.handler403
, et general.view .__ init__
a de .handler403 import handler403
.
Vous voudrez peut-être pirater une instrumentation de débogage (c'est-à-dire print
s) dans votre copie locale de django.urls.resolvers.URLResolver # resolution_error_handler
, pour voir ce qu'il essaie faire.
handler403 doit pointer vers une vue
Essayez quelque chose comme ceci:
from general.views.handler403 import handler403 handler403 = handler403
Je suppose que vos vues renvoient un < code> django.http.HttpResponseForbidden au lieu de lever un django.core.exceptions.PermissionDenied
exception.
Seule l'exception PermissionDenied
est gérée par handler403, un HttpResponseForbidden
est renvoyé tel quel.
En effet! Merci beaucoup :)
Pouvez-vous mettre à jour votre question avec votre vue personnalisée du gestionnaire d'erreurs?
@MohammadUmair terminé.