【发布时间】:2021-12-12 17:13:17
【问题描述】:
我试图了解从Django 中的多个表中查询所需数据的最有效方法。
class City():
name = models.CharlField()
class Address():
line1 = models.CharlField()
...
city_id = models.ForeignKey(City, ... related_name="city_address")
class Student()
name = models.CharlField()
gender = models.CharlField()
# a student can only have one address
address_id = models.OneToOneField(Address, ... related_name="address_student")
如何优化下面的查询来得到这个学生所属的城市?
student = Student.objects.filter(name="John").first() # assuming its a unique name
address_id = student.address_id
address = Address.objects.filter(id=address).first()
city_id = address.city_id
City.objects.get(id=city_id)
提前谢谢你。
【问题讨论】:
-
你应该可以得到
student.address。
标签: python python-3.x django django-models