2017-07-04 11 views
0

Ich bin ein Neuling in Django. Ich hatte REST API mit DRF erstellt. Mein Django hat 3 Apps. Jetzt möchte ich die Authentifizierung anwenden. Ich habe viel Hilfe gesehen, aber ich darf die Authentifizierung nicht richtig anwenden. Ich möchte auch, dass das Modell an den Benutzer angehängt werden soll. Damit ein Benutzer keine anderen Benutzereinträge sehen kann. Kann mir jemand helfen zu erzählen, wie man das ein wenig detailliert umsetzt?Django Rest Framework Authentifizierung Probleme

Vielen Dank im Voraus. Wird eine große Hilfe sein, wenn jemand antwortet.

+0

Was Sie bisher versucht haben ?? Zeigen Sie einen Code .. – zaidfazil

+0

Ich habe den Besitzer mit einem der folgenden Modell: 'owner = models.ForeignKey ('auth.User', related_name = 'jobs', on_delete = models.CASCADE)' In Ansichten habe ich enthalten: 'permission_classes = (permissions.IsAuthenticated,)' – adarsh

Antwort

0

Sie benutzerdefinierte Berechtigungen hinzufügen könnte,

class IsOwnerOnlyAllowed(permissions.BasePermission): 

    def has_object_permission(self, request, view, obj): 
     return obj.owner == request.user 

können Sie fügen permission_classes = (IsOwnerOnlyAllowed,)

Auch Sie könnten das queryset Attribut Ihrer Ansicht überschreiben nur Einträge zu schaffen, die Benutzer zu den angemeldeten verwandt sind.

Bearbeiten Sie Ihre Ansichten,

from rest_framework import generics 
from .models import DatasetModel 
from .serializer import DatasetSerializer 

class DatasetView(generics.ListCreateAPIView): 
    queryset = DatasetModel.objects.all() 
    serializer_class = DatasetSerializer 

    def get_queryset(self): 
     return self.queryset.filter(owner=self.request.user) 
+0

Können Sie bitte erarbeiten, wie das geht? – adarsh

+0

Könnten Sie bitte Ihre Ansicht dafür zeigen? – zaidfazil

+0

'von rest_framework Import Generika von .models importieren DatasetModel von .serializer Import DatasetSerializer Klasse DataSetView (generics.ListCreateAPIView): queryset = DatasetModel.objects.all() serializer_class = DatasetSerializer' – adarsh

Verwandte Themen