[PYTHON] Django REST Framework Stolperstein

Method Not Allowed:405 --anforderungsmethode

401 Unauthorized

Wie die URL funktioniert

Serializer --Verwenden Sie fields = '__ all __' --'required ': Nutzen Sie False voll aus

serializer.py


class HistorySerializer(serializers.ModelSerializer):
    class Meta:
        model = History
        fields = '__all__'
        extra_kwargs = {
            'id': {'required': False},
            'start_at': {'required': False},
        }

403 Verboten (POST kann nicht mit JavaScript veröffentlicht werden)

js-cookie Importieren Sie die folgende Bibliothek https://github.com/js-cookie/js-cookie/

Beispiel.

base.html


<script src="{% static 'js.cookie/js.cookie.min.js' %}"></script>

JavaScript-Beschreibung

Zu Ajax-Parametern hinzugefügt

js



params = {
    csrfmiddlewaretoken: Cookies.get('csrftoken'),
    ...
}

js


$('#btn-add-confirm').click(() => {
    let post_url = "/api/configs/";
    let params = {
        csrfmiddlewaretoken: Cookies.get('csrftoken'),  //Ich brauche diesen Kerl
        year: $("#input-year").val(),
        url: $("#input-url").val(),
        num_of_report: 1,
        is_selected: "0"
    }

    $.ajax({
        url: post_url,
        type: "POST",
        data: params,
        success: function(data, textStatus, jqXHR) {
            window.location.reload();
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.warn("Konnte nicht posten");
        }
    });
})

https://docs.djangoproject.com/en/dev/ref/csrf/#ajax

403 Verboten (Kann mit JavaScript nicht gelöscht werden)

js-cookie Siehe 403 Verboten (POST kann nicht mit JavaScript veröffentlicht werden)

JavaScript-Beschreibung

BeforeSend zu Ajax hinzugefügt

js


        beforeSend: function(xhr) {
            xhr.setRequestHeader("X-CSRFToken", Cookies.get('csrftoken'));
        },

js


$('.btn-delete').click(function() {
    let post_url = "/api/configs/";

    $.ajax({
        url: post_url + $(this).val() + "/",
        type: "DELETE",
        beforeSend: function(xhr) {
            xhr.setRequestHeader("X-CSRFToken", Cookies.get('csrftoken'));
        },
        success: function(data, textStatus, jqXHR) {
            window.location.reload();
        },
        error: function(jqXHR, textStatus, errorThrown) {
            console.warn("Konnte nicht posten");
        }
    });
})

Recommended Posts

Django REST Framework Stolperstein
Grundlagen des Django REST-Frameworks
Tipps zum Django Rest Framework
Django REST Framework mit Vue.js
Melden Sie sich mit dem Django Rest Framework an
[Django] Verwenden Sie MessagePack mit dem Django REST-Framework
Erstellen Sie eine RESTful-API mit dem Django Rest Framework
Logisches Löschen in Django, DRF (Django REST Framework)
Verstehen Sie den Komfort des Django Rest Framework
Ein Verwaltungstool, das sofort mit dem REST-Framework ng-admin + Django erstellt werden kann
CRUD GET mit Nuxt & Django REST Framework ②
CRUD POST mit Nuxt & Django REST Framework
CRUD GET mit Nuxt & Django REST Framework ①
Überlegungen zum Design von Django REST Framework + Clean Architecture
CRUD PUT, DELETE mit Nuxt & Django REST Framework
Implementieren Sie die JWT-Anmeldefunktion im Django REST-Framework
Implementierung der Authentifizierungsfunktion in Django REST Framework mit djoser
Django Python Web Framework
Erstellen Sie eine Todo-App mit Django REST Framework + Angular
Weitere neue Benutzerauthentifizierungsmethoden mit Django REST Framework
Lassen Sie uns eine Todo-App mit dem Django REST-Framework erstellen
Erstellen Sie eine API für die Benutzerauthentifizierung mit Django REST Framework
Wenn Sie mit dem Django REST-Framework filtern möchten
[Django Rest Framework] Passen Sie die Filterfunktion mit Django-Filter an
Implementieren Sie hierarchische URLs mit drf-verschachtelten Routern im Django REST-Framework
So schreiben Sie eine benutzerdefinierte Validierung in Django REST Framework
Zurücksetzen des Passworts über die API mit dem Django Rest Framework
Django Rest Framework Dekorateure `Action Decorator ersetzt list_route und detail_route`
Implementierung der JWT-Authentifizierungsfunktion in Django REST Framework mit djoser
Implementierung von CRUD mithilfe der REST-API mit Python + Django Rest Framework + igGrid
Erstellen Sie eine REST-API, um dynamodb mit dem Django REST Framework zu betreiben
[Python] Der Stolperstein des Imports
Installieren Sie das Python Framework Django mit pip
Implementierung der benutzerdefinierten Authentifizierungsfunktion für Benutzermodelle in Django REST Framework mit djoser
Wie man mit verstümmelten Charakteren in json von Django REST Framework umgeht
Ich habe ein WebAPI gemacht! Erstellen einer Umgebung aus Django Rest Framework 1 mit EC2