![](/img/trans.png)
[英]How to get the list of “objects” from a queryset in a Foreign Key relationship in Django
[英]Django 2.1: How to get a list of objects that in each object, contains the objects that have a foreign key pointing to them
我有这两节课:
Class A:
data
Class B:
a = models.ForeignKey(A)
如何获得A
的数组,其中每个A
包含与之相关的B
?
我需要它,因为我必须返回以JSON连接的两个表。
首先设置背面关系a
,然后迁移数据库:
Class A(models.Model):
data
Class B(models.Model):
a = models.ForeignKey(A, related_name='b_relations', null=False, blank=False, on_delete=models.CASCADE)
现在,您可以访问后关系。 您需要在b_relations
上调用b_relations
.all()
,因为它是延迟加载的。
A.objects.first().b_relations.all()
为了获取json数据,我建议使用Django rest框架的ModelSerializer:
class BSerializer(serializers.ModelSerializer):
class Meta:
model = B
fields = (
'pk', # primary key
'a',
)
depth = 0
class ASerializer(serializers.ModelSerializer):
b_relations = BSerializer(many=True, read_only=True))
class Meta:
model = A
fields = (
'pk', # primary key
'b_relations',
)
depth = 0
要获取json数据:
a_relations: QuerySet = A.objects.all()
serializer = ASerializer(a_relations, many=True)
json_data: Dict = serializer.data
如果您从未使用过Django Rest Framework: Django Rest Framework-入门
玩得开心!
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.