Django Rest Framework Dersleri-3

ders3.md

Django Rest Framework Notlarım

Mixins

  • Sınıf tabanlı (class-based) view ile çalışmak tekrar kullanım, esneklik, ve temiz kod avantajları sağlar.
  • Django Rest Framework'un bize sunduğu alternatif view class'lardan bazılarını kullanalım.
  • apitr/views modülündeki LibraryList sınıfını aşağıdaki düzenleyelim
from rest_framework import mixins, generics # importları unutmayalım class LibraryList(mixins.ListModelMixin, mixins.CreateModelMixin, generics.GenericAPIView): queryset = Library.objects.all() serializer_class = LibrarySerializer def get(self, request, *args, **kwargs): return self.list(request, *args, **kwargs) def post(self, request, *args, **kwargs): return self.create(request, *args, **kwargs)
  • generics.GenericAPIView sınıfı ana fonksiyonellik için temel oluşturur.
  • mixin sınıflar .list(..) ve .create(...) işlemlerini sunar. list ve create işlemlerini methodlar vasıtası ile uygun get, post methodlarına bağlıyoruz.
  • LibraryDetail sınıfını da aşağıdaki gibi düzenleyelim
class LibraryDetail(mixins.RetrieveModelMixin, mixins.UpdateModelMixin, mixins.DestroyModelMixin, generics.GenericAPIView): queryset = Library.objects.all() serializer_class = LibrarySerializer def get(self, request, *args, **kwargs): return self.retrieve(request, *args) def put(self, request, *args, **kwargs): return self.update(request, *args, **kwargs) def delete(self, request, *args, **kwargs): return self.destroy(request, *args, **kwargs)
  • LibraryList sınıfındaki gibi benzer şekilde ihtiyacımız olan sınıfları miras aldık ve ana fonksiyonelliği yeniden generics.GenericAPIView ile sağlıyoruz.

Yorumlar