📝 面试求职: 「面试试题小程序」 ,内容涵盖 测试基础、Linux操作系统、MySQL数据库、Web功能测试、接口测试、APPium移动端测试、Python知识、Selenium自动化测试相关、性能测试、性能测试、计算机网络知识、Jmeter、HR面试,命中率杠杠的。(大家刷起来…)
📝 职场经验干货:
前言
在Django REST Framework(DRF)中,mixin 是一种常见的设计模式,用于扩展视图的功能。mixin 允许你将一组共同的行为组合成一个类,然后通过继承这些类来复用这些行为。这种方式非常适合DRF中的视图集(ViewSets)和通用视图(Generic Views)。
示例:如何在DRF中利用 mixin 来扩展视图的功能
使用 ListModelMixin 和 RetrieveModelMixin
ListModelMixin 和 RetrieveModelMixin 分别提供了列表和详细视图的功能。
from rest_framework import mixins
from rest_framework import generics
from django.contrib.auth.models import User
from .serializers import UserSerializer
class UserListView(generics.GenericAPIView,
mixins.ListModelMixin,
mixins.RetrieveModelMixin):
queryset = User.objects.all()
serializer_class = UserSerializer
def get(self, request, *args, **kwargs):
if 'pk' in kwargs: # 如果URL中有pk参数,则执行详细视图
return self.retrieve(request, *args, **kwargs)
else: # 否则执行列表视图
return self.list(request, *args, **kwargs)
# URL配置
from django.urls import path
from .views