小编gui*_*uer的帖子

XX 处的 Django 序列化器 ManyRelatedManager 对象不是 JSON 可序列化的

我正在尝试将 ModelSerializer 用于具有多对多字段的模型。

这是我模型的一部分:

class BaseSearchService(models.Model):

advertisements = models.ManyToManyField(Advertisement, null=False,
    blank=False)
Run Code Online (Sandbox Code Playgroud)

这是序列化程序

class SearchTransportSickPersonSerializer(serializers.ModelSerializer):

person = TransportPersonComponentSerializer()
owner = serializers.ReadOnlyField(source='owner.username')
advertisements = serializers.ReadOnlyField()

class Meta:
    model = SearchTransportSickPerson
    fields = ('name', 'description',
        'date_service_full_day', 'date_service', 'origin_lat',
        'origin_long', 'destinity_lat', 'destinity_long', 'multiple_stops',
        'person', 'owner', 'advertisements')

def create(self, validated_data):

    user_data = validated_data.pop('owner')
    advs = validated_data.pop('advertisements')

    user = User.objects.get(email=user_data.email)

    person_data = self.validated_data.pop('person')
    person = TransportPersonComponent.objects.create(**person_data)

    sickPerson = SearchTransportSickPerson.objects.create(person=person,
        owner=user, **self.validated_data)

    for adv in advs:
        a = Advertisement.objects.get(id=adv.id)
        sickPerson.advertisements.add(a)

    sickPerson.save()

    return sickPerson
Run Code Online (Sandbox Code Playgroud)

我编写了一个单元测试来复制错误:

def test_serializer_2(self):
    transportSickPerson …
Run Code Online (Sandbox Code Playgroud)

python django serialization json

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

标签 统计

django ×1

json ×1

python ×1

serialization ×1