我在Django中具有外键关系模型。我努力尝试但无法解决问题。对于该查询集,我拥有PropertyDetails
的查询集,我想获取Filestore
的所有值其中默认图片为 True
class PropertyDetails(models.Model):
propertyname=CharField(max_length=10)
dateposted=CharField(max_length=10)
class Filestore(models.Model):
propertyid = models.ForeignKey(PropertyDetails,on_delete=models.CASCADE)
defaultimage=BooleanField()
imagename=models.CharField(max_lenth=10)
imgproperty=models.Charfield(max_lenth=11)
例如 鉴于:
(QuerySet [PropertyDetails: P1, PropertyDetails: P2])
任务:
for (PropertyDetails: P1)
where defaultimage=True get values of
propertyname,values of filestore table combined with it
(and same for P2)
我想要的回应
{
"id":1,
"propertyname":"P1",
"propertyimage":["imgproperty":"property","imagename":"abc"],
"id":2,
"propertyname":"P2",
"propertyimage":["imgproperty":"property","imagename":"xyz"]
}
有没有有效的解决方案
答案 0 :(得分:0)
如果您使用Serializer
获取json。
首先添加与字段相关的内容:
propertyid = models.ForeignKey(PropertyDetails,on_delete=models.CASCADE, related_name='propertyid_set')
并像这样定义Serializer
:
class PropertyDetailsSerializer(serializers.ModelSerializer):
propertyimage = serializers.SerializerMethodField()
def get_propertyimage(self, item):
data = list(item.propertyid_set.filter(defaultimage=True).values('imgproperty', 'imagename'))
return data
class Meta:
model = PropertyDetails
fields = ['propertyimage', 'id', 'propertyname']
并为您的api使用PropertyDetailsSerializer