在django-rest0-framework中基于ModelSerializer创建序列化程序时,我必须在Meta类中传递模型:
class ClientSerializer(ModelSerializer):
class Meta:
model = Client
我想创建一个基于URL的通用序列化程序,动态地包含模型.
我的安装程序thusfar包括URL.py和视图集:
网址.py:
url(r'^api/v1/general/(?P<model>\w+)', kernel_api_views.GeneralViewSet.as_view({'get':'list'}))
和观点.py:
class GeneralViewSet(viewsets.ModelViewSet):
def get_queryset(self):
# Dynamically get the model class from myapp.models
queryset = getattr(myapp.models, model).objects.all()
return queryset
def get_serializer_class(self):
return getattr(myapp.serializers, self.kwargs['model']+'Serializer')
负责:http://127.0.0.1:8000/api/v1/general/Client个客户.物体.all()作为queryset,ClientSerializer类作为serializer
Question:我怎样才能调用"GeneralSerializer"并在其中动态分配模型?