Rückgabewert Benutzerdefiniert 404 Fehler, wenn die Ressource im Django Rest Framework nicht gefunden wurde

8

Ich lerne Django Rest Framework und auch neu im Django. Ich möchte einen benutzerdefinierten 404 Fehler in JSON zurückgeben, wenn ein Client auf eine Ressource zugreifen wird, die nicht gefunden wurde.

Mein urls.py sieht wie folgt aus:

%Vor%

In dem ich nur eine Ressource habe, auf die über den URI zugegriffen werden kann, Ссылка

Wenn ein Client nun auf einen anderen URI wie Ссылка zugreift, sollte die API einen 404-Not Found -Fehler wie return geben das:

%Vor%

Bitte schlagen Sie eine Antwort mit geeigneten Code-Schnipseln vor, falls geeignet.

    
Akshay Pratap Singh 13.07.2015, 09:54
quelle

2 Antworten

13

Sie suchen handler404 .

Hier ist mein Vorschlag:

  1. Erstellen Sie eine Ansicht, die aufgerufen werden soll, wenn keines der URL-Muster übereinstimmt.
  2. Fügen Sie handler404 = path.to.your.view zu Ihrer root URLconf hinzu.

Hier ist, wie es gemacht wird:

  1. project.views

    %Vor%
  2. project.urls

    %Vor%

Lesen Sie die Fehlerbehandlung für weitere Details.

Django-REST-Framework-Ausnahmen können ebenfalls nützlich sein.

    
Ernest Ten 13.07.2015, 10:35
quelle
2

nach django-Dokumentation:  Django durchläuft nacheinander alle URL-Muster und stoppt bei der ersten, die der angeforderten URL entspricht. Ref: Ссылка

Sie können einfach eine weitere URL in urlpatterns nach der erstellen, die Sie erstellt haben, und sie sollte mit allen URL-Mustern übereinstimmen und sie an eine Ansicht senden, die den 404-Code zurückgibt.

d. h .:

%Vor%     
sabtikw 13.07.2015 10:28
quelle