Вот разница: mixins
являются (как описано в комментариях к коду) basic building blocks for generic class based views
- они в основном независимы от представления Python-объектов, что означает, что вы не сможете использовать CreateModelMixin
в одиночку дляна самом деле создать модель.Вам нужно наследовать это в новом представлении, и CreateAPIView
делает именно это:
# Concrete view classes that provide method handlers
# by composing the mixin classes with the base view.
class CreateAPIView(mixins.CreateModelMixin,
GenericAPIView):
"""
Concrete view for creating a model instance.
"""
def post(self, request, *args, **kwargs):
return self.create(request, *args, **kwargs)
Та же концепция применяется ко всем другим mixins
и views
, mixins
равны многократно используемые фрагменты кода .
Этот - отличное (длинное, но отличное) прочтение по этому вопросу, очень подробное.