Django RF ModelViewSet参数和模型在Swagger中不可见

时间:2020-08-26 14:59:33

标签: python django django-rest-framework swagger

我正在使用Django,其余框架和灵活(使用drf_yasg)开发API。我试图生成视图集和序列化器,但是在Swagger中未显示参数和模型。可以手动编码每个序列化器和视图集,但是我的目标是简化此过程。这是我这一代人的代码:

# Template class for serializing
class GenericSerializer(serializers.ModelSerializer):
    class Meta:
        fields = '__all__'
        depth = 3


# Unified Generic API view for all models in shop.models
class GenericAPIView(viewsets.ModelViewSet):
    permission_classes = (IsAuthenticated,)
    lookup_fields = ['id']

    def dispatch(self, request, *args, **kwargs):
        for model_name, model in apps.get_app_config('api').models.items():
            if request.path.split('/')[2] == model._meta.verbose_name_plural.title().lower():
                self.model = model
                self.queryset = self.model.objects.all()
                serializer = GenericSerializer
                serializer.Meta.model = self.model
                self.serializer_class = serializer
        return super().dispatch(request, *args, **kwargs)

这样,默认的ModelViewSet路线就会大张旗鼓地显示出来,但是每个模型的参数以及模型本身都丢失了。我确认已分配了模型,尽管有代码,但在控制台中仍显示警告,提示我应提供serializer_class或重写方法(但我认为应该没问题,因为我是手动分配的。)

我需要添加一些细节吗?还是不可能吗?

0 个答案:

没有答案