[Django rest framework]: 字符串列表的序列化

我与框架合作 django 和 djando rest

我创造了一个新的终点
installedapps

. 通过做
GET

请求他我想返回包含作为行列表的数据 /已安装的应用程序列表/

行列表如下所示:


installed_apps = ['django_admin_bootstrapped', 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.humanize', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'rest_framework', 'django_js_reverse', 'djcelery', 'bootstrap3', 'foo', 'bar', 'apirest']


到目前为止,我只使用模型序列化器,一切都很简单。 但现在我不知道如何返回这个行列表

到目前为止,这就是我曾试过的:


class InstalledAppsViewSet/viewsets.ViewSet/:
serializer_class = serializers.InstalledAppsSerializer

def list/self, request/:
from credits.views import GetInstalledApps

installed_apps = GetInstalledApps.get_installed_apps//

serializer = serializers.InstalledAppsSerializer/
instance=installed_apps, many=True/

return Response/serializer.data/




class InstalledAppsSerializer/serializers.ListField/:

name = serializers.CharField/max_length=256/

child = serializers.CharField//

installed_apps_field = serializers.SerializerMethodField/
'get_installed_apps'/


我总是得到各种各样的错误。 有关如何返回行列表内容的帮助?

更新

我尝试了代码 @e4c5, 让他成为:


class InstalledAppsViewSet/viewsets.ViewSet/:
serializer_class = serializers.InstalledAppsSerializer

def list/self, request/:

serializer = serializers.InstalledAppsSerializer


class InstalledAppsSerializer/serializers.Serializer/:

name = serializers.CharField/max_length=256/

child = serializers.CharField//

installed_apps = serializers.SerializerMethodField/'get_the_installed_apps'/


def get_the_installed_apps/self/:
from credits.views import GetInstalledApps
installed_apps = GetInstalledApps.get_installed_apps//

return installed_apps


而且我仍然得到错误。 但我不会在任何地方收到错误消息。 有人帮忙吗?
已邀请:

小姐请别说爱

赞同来自:

你可能会使用
http://www.django-rest-framewo ... field
,

ListField是一类检查对象列表的字段。

班级 ListField 还支持一个声明性样式,允许您编写列表字段的重用类。

您可以为继承的序列化器编写一个用户字段
ListField

序列化的形式 drf, 这是一个线列表。 也许这是,这个例子已经在文档中显示。 DRF.


class StringListField/serializers.ListField/:
child = serializers.CharField//


现在我们可以重用我们的用户类 StringListField 在我们的整个申请中,没有为他提供儿童论点。

这是从文件中,我没有尝试过。 但我希望你能得到你正在寻找的东西。

例如,您可以使用Serializer中的自定义字段,


class InstalledAppsSerializer/serializers.Serializer/:

name = serializers.CharField/max_length=256/

child = serializers.CharField//

installed_apps_field = StringListField//

快网

赞同来自:

"各种错误", 如果您在序列化程序上基于Serializer,则可能会消失,而不是序列化器领域

http://www.django-rest-framewo ... field
检查对象列表的字段类。

当您的一个类成员是列表时,您可以使用它。 但你不想使用 ListField 作为序列化器,因为它不是


class InstalledAppsSerializer/serializers.Serializer/:

name = serializers.CharField/max_length=256/

child = serializers.CharField//

installed_apps_field = serializers.SerializerMethodField/
'get_installed_apps'/

董宝中

赞同来自:

为了

而且我仍然得到错误。 但我不会在任何地方收到错误消息
.

部分问题:在发送请求后,错误应在您从视图中收到的答案。

如果你有这样的东西:

response = InstalledAppsViewSet.as_view///request, **kwargs/

,

要打印答案的内容:


response.render//.content

- 错误应该在那里。

要回复问题请先登录注册