中級建立自定義混合
通過允許建立自定義 mixin,DRF 提供了進一步自定義通用檢視/檢視集行為的機會。
如何:
要定義自定義 mixin,我們只需要建立一個繼承自 object
的類。
假設我們要為名為 MyModel
的模型定義兩個單獨的檢視。這些觀點將共享相同的 queryset
和相同的 serializer_class
。我們將節省一些程式碼重複,我們將上面的內容放在一個 mixin 中,以便我們的檢視繼承:
-
my_app/views.py
(這不是唯一可用於放置我們自定義 mixin 的檔案選項,但它不那麼複雜):from rest_framework.generics import CreateAPIView, RetrieveUpdateAPIView from rest_framework.permissions import IsAdminUser class MyCustomMixin(object): queryset = MyModel.objects.all() serializer_class = MyModelSerializer class MyModelCreateView(MyCustomMixin, CreateAPIView): """ Only an Admin can create a new MyModel object """ permission_classes = (IsAdminUser,) Do view staff if needed... class MyModelCreateView(MyCustomMixin, RetrieveUpdateAPIView): """ Any user can Retrieve and Update a MyModel object """ Do view staff here...
結論:
Mixins 本質上是我們應用程式的可重用程式碼塊。