gpt4 book ai didi

django - many=True TypeError 对象不可迭代

转载 作者:行者123 更新时间:2023-12-01 19:35:11 24 4
gpt4 key购买 nike

我想在 PUT 和 GET 中获取外键值,但是在使用 many=True 时出现错误 TypeError object is not iterable。以下是我的片段。

我有两个模型,分别是MasterStatusMasterType。在 MasterType 中,我有 MasterStatus 的外键值。

模型.py

class MasterType(models.Model):
id = models.BigIntegerField(primary_key=True)
type_name = models.CharField(max_length=255, blank=True, null=True)
fk_status = models.ForeignKey(MasterStatus)

def __unicode__(self):
return u'%s' % (self.type_name)
class Meta:
managed = False
db_table = 'master_type'

在序列化程序中,我使用 many=True 来获取外键的嵌套值。在这里,我使用了 PrimaryKeyRelatedField 序列化程序。

序列化器.py

class MasterTypeSerializer(serializers.HyperlinkedModelSerializer):     
fk_status = serializers.PrimaryKeyRelatedField(queryset=MasterStatus.objects.all(),many=True)
class Meta:
model = MasterType
fields = ('id', 'type_name', 'fk_status', 'last_modified_date', 'last_modified_by')
depth = 2

最佳答案

ForeignKey 链接到单个 MasterStatus 实例,因此它并不多。

你的序列化器应该看起来像这样:

class MasterTypeSerializer(serializers.HyperlinkedModelSerializer):     
fk_status = serializers.PrimaryKeyRelatedField(
queryset=MasterStatus.objects.all())

class Meta:
model = MasterRepaymentType

class MasterStatusSerializer(serializers.HyperlinkedModelSerializer):
fk_type = serializers.PrimaryKeyRelatedField(
queryset= MasterRepaymentType.objects.all(), many=True)

class Meta:
model = MasterStatus

请注意,many 用于 fk_type 字段,因为 MasterStatus 有许多 MasterRepaymentType

希望这对您有所帮助。

关于django - many=True TypeError 对象不可迭代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34350683/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com