小编Pol*_*nez的帖子

AttributeError: 'property' 对象没有属性 'copy' - 试图在 Django Rest 中获取对象列表

为了练习我的 Django 技能,我尝试制作简单的模块,它应该或多或少地像 Django 中的管理站点一样工作。它应该从应用程序收集所有模型,列出它们并显示每个模型中的每个对象。我尝试做的是使用 Django Rest Framework。

这是我的views.py。我有 2 个观点。api_root 侦听所有模型,但它也会将 params-models_names 发送到另一个视图“model_view”。ModelViewSet 应该列出来自特定模型的所有对象。

class ModelsViewSet(viewsets.ModelViewSet):
    def get_serializer(self, *args, **kwargs):
        serializer_name = '{model_name}Serializer'.format(
            model_name=self.kwargs.get('name').split(".")[1]
        )
        return getattr(serializers, serializer_name)

    def get_model(self):
        """methods return model based on name kwargs

        :return:
        """
        return apps.get_model(self.kwargs.get('name'))

    def get_queryset(self):
        return self.get_model().objects.all()

    def get_object(self):
        return self.get_model().objects.get(pk=self.kwargs.get('pk'))


@api_view(['GET'])
def api_root(request, format=None):
    return Response([reverse(
             viewname='model_view',
             kwargs={'name': i._meta.label}) for i in apps.get_models()])
Run Code Online (Sandbox Code Playgroud)

这是我的 serializers.py。在这个文件中,序列化器类是动态构建的。每个类都建立在 django.apps 模型的基础上。

from django.apps import apps
from rest_framework import serializers
from admin_site import serializers as …
Run Code Online (Sandbox Code Playgroud)

python django serialization django-rest-framework

1
推荐指数
1
解决办法
1200
查看次数