ders3.md
D
jango R
est F
ramework 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
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