DRF的嵌套关系:带有Tup的序列化程序输出OrderedDict

2024-07-08 15:41:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我跟随this guide序列化对象及其嵌套关系:

class EmployeeWorkShift(models.Model):
    employee = models.ForeignKey(CompanyEmployees, unique=True)
    work_shift = models.ForeignKey(WorkShift, unique=True, related_name='employee_work_shifts')

class WorkShift(models.Model):
    workers = models.ManyToManyField('CompanyEmployees', through='EmployeeWorkShift')
    is_active = models.BooleanField(default=True)

class EmployeeWorkShiftSerializer(serializers.ModelSerializer):
    class Meta:
        model = EmployeeWorkShift
        fields = ('id')

class WorkShiftSerializer(serializers.ModelSerializer):
    employee_work_shifts = EmployeeWorkShiftSerializer(many=True, read_only=True)
    class Meta:
        model = WorkShift
        fields = ('id', 'employee_work_shifts')
    depth = 1

但是,当我这么做的时候

^{pr2}$

我得到:

{'employee_work_shifts': [OrderedDict([('id', 13)]), OrderedDict([('id', 14)])], 'id': 1}

似乎DRF把员工的工作轮班视为有序的信息清单。。。在

我错过了什么明显的东西吗?在

在要求.txt公司名称:

djangorestframework==3.1.2
Django==1.7.8

Tags: idtruemodelmodelsemployeeclassworkshifts
1条回答
网友
1楼 · 发布于 2024-07-08 15:41:14

发现问题:我跑了

WorkShiftSerializer(WorkShift.objects.get(pk=1)).data

python(iPython)管理.py壳牌加)。在

我想iPython不知怎么搞砸了对象类型。当我在服务器(python)中运行它时管理.py运行服务器),它的行为正常。在

相关问题 更多 >

    热门问题