django rest框架,不可序列化

django rest框架,不可序列化,django,django-rest-framework,Django,Django Rest Framework,我是django REST框架的新手,在导入团队成员列表时遇到困难 我的问题是 team_name_list = Project.objects.get(id=kwargs['pk1']).team_id.members.all() 给出一个输出: <QuerySet [<MyUser: johndoe@gmail.com>, <MyUser: johndoe2@gmail.com>, <MyUser: johndoe3@gmail.com>, <

我是django REST框架的新手,在导入团队成员列表时遇到困难

我的问题是

team_name_list = Project.objects.get(id=kwargs['pk1']).team_id.members.all()
给出一个输出:

<QuerySet [<MyUser: johndoe@gmail.com>, <MyUser: johndoe2@gmail.com>, <MyUser: johndoe3@gmail.com>, <MyUser: johndoe4@gmail.com>]>
我猜是因为我的查询的输出应该是[”johndoe@gmail.com","johndoe2@gmail.com","johndoe3@gmail.com","johndoe4@gmail.com“]

我怎样才能让它工作

已编辑工作:使用序列化程序

我创建了在视图中导入的serializer.py文件,因此现在不会出现错误“not serializable”,但我的数据不会显示在端点或检查/控制台中

我错过了什么

from rest_framework.serializers import ModelSerializer

from registration.models import MyUser
from website.models import Team,Project

class MyUserSerializer(ModelSerializer):
    class Meta:
        model = MyUser
        fields = [
            'email',
            'first_name',
            'last_name'
        ]
观点:

从website.serializer导入MyUserSerializer

我有一个链接到myemploye\u detail\u page.html的视图

class EmployeeDetailView(generic.DetailView, LoginRequiredMixin):
    #import pdb; pdb.set_trace()
    model = MyUser
    template_name = 'Employee_Details.html'


    def get_object(self, queryset=None):
        return get_object_or_404(MyUser, pk=self.kwargs['pk2'], members__project=self.kwargs['pk1'])

    def get_context_data(self, **kwargs):
        context = super(EmployeeDetailView, self).get_context_data(**kwargs)
        employee_name = MyUser.objects.get(id=self.kwargs['pk2'])
        team_list = Project.objects.get(id=self.kwargs['pk1']).team_id.members.all()
        team_list_pop = Project.objects.get(id=self.kwargs['pk1']).team_id.members.all().exclude(id=self.kwargs['pk2'])
        context={
            'employee_name' : employee_name,
            'team_list' : team_list,
            'team_list_pop' : team_list_pop
        }
        return context
在模板中,我使用chartJS和这个视图包含了一个dashboard.html

class EmployeeChartData(APIView):
    #import pdb; pdb.set_trace()
    authentication_classes = []
    permission_classes = []

    serializer_class = MyUserSerializer

    def get(self, request, format=None, *args, **kwargs):

        project_name = Project.objects.get(id=kwargs['pk1']).name
        team_name_list = Project.objects.get(id=kwargs['pk1']).team_id.members.all()
        serializer = self.get_serializer_class()
        team_name_data = serializer(team_name_list)
        team_member_count = Project.objects.get(id=kwargs['pk1']).team_id.members.count()
        main_items2 = [1,2,3,-4,5,6,-7,8,9,-10,-11,12,13,14,15,16]
        info_process_data = [4,6,2,8,4]
        info_process_data2 = [8,2,5,2,4]
        action_process_data = [5,3,9]
        motivation_data = [4,5,1,8]
        behaviour_data = [6,3,9,1]

        data = {
            #labels

            "labels_main_graph":labels_main_graph,
            "information_processing_label": information_processing_label,
            "action_process_label": action_process_label,
            "motivation_label": motivation_label,
            "behaviour_label":behaviour_label,
            #data

            "main2": main_items2,
            "info_process_data": info_process_data,
            "info_process_data2": info_process_data2,
            "action_process_data": action_process_data,
            "motivation_data":motivation_data,
            "behaviour_data":behaviour_data,
            #other
            "project_name":project_name,
            "team_member_count":team_member_count,
            "team_name_list":team_name_data

        }
        return Response(data)

在返回响应之前,请序列化您的团队名称列表

    team_name_list = Project.objects.get(id=kwargs['pk1']).team_id.members.all()
    serializer = self.get_serializer_class()
    team_name_data = serializer(team_name_list)
然后在数据目录中:

    "team_name_list":team_name_data

在返回响应之前,请序列化您的团队名称列表

    team_name_list = Project.objects.get(id=kwargs['pk1']).team_id.members.all()
    serializer = self.get_serializer_class()
    team_name_data = serializer(team_name_list)
然后在数据目录中:

    "team_name_list":team_name_data


json.dumps({“email”:[i.email for i in team_name_list]})
您必须序列化查询结果才能获得json。通过DRF序列化[here]()@ParulDixit,您好,谢谢您的回答,我读了文档。。我排除了错误,但仍然看不到我的数据。。我用我的代码编辑了我的帖子,如果你能看一看的话;)@Ben2pop你可以分享你的视图代码。只是想知道你是如何呈现数据的。当然,我已经做到了thx:)
json.dumps({“email”:[I.email for I in team_name_list]})
你必须序列化你的查询结果才能得到json。通过DRF序列化[here]()@ParulDixit,您好,谢谢您的回答,我读了文档。。我排除了错误,但仍然看不到我的数据。。我用我的代码编辑了我的帖子,如果你能看一看的话;)@Ben2pop您可以共享您的视图代码。只是想知道您是如何呈现数据的。当然,我已经完成了thx:)我想获取“EmployeeChartData”对象没有属性“get_serializer_class”get_serializer_class是获取相应序列化的方法。但是,您可以直接使用您定义的序列化程序的名称。您是否可以更清楚地说,我不确定如何使用get_serializer_类。事实上,我总是遇到错误:“ListSerializer”类型的对象不是JSONserializable@B我已经添加了一个获取“EmployeeChartData”对象没有属性的命令“get_serializer_class”get_serializer_class是获取相应序列化的方法。但是,您可以直接使用您定义的序列化程序的名称。您是否可以更清楚地说,我不确定如何使用get_serializer_类。事实上,我总是遇到错误:“ListSerializer”类型的对象不是JSONserializable@B我补充说