Mixin 就是混入的意思。
和多重继承类似(其实可以把 Mixin 看作多重继承的一种在特定场景下的应用),但通常混入 Mixin 的类和 Mixin 类本身不是 is-a 的关系,混入 Mixin 类是为了添加某些(可选的)功能。自由地混入 Mixin 类就可以灵活地为被混入的类添加不同的功能。
传统的「接口」概念中并不包含实现,而 Mixin 包含实现。实际上 Mixin 的作用和 Java 中的众多以「able」结尾的接口很相似。不同的是 Mixin 提供了(默认)实现,而 Java 中实现了 -able 接口的类需要类自身来实现这些混入的功能(Serializable 接口是个例外)。
参考:
http://python.usyiyi.cn/documents/django_182/topics/class-based-views/mixins.html
如果你想编写一个简单的基于类的视图,它只响应POST, 我们将子类化View并在子类中红写一个post()方法,但是,如果我们想处理一个由URL标识的特定对象,我们将需要SingleObjectMixin提供的功能。