我正在构建一个Django应用程序,并尝试返回我的values()
dict中的对象列表。
我的样品模型是这样的-
class State(models.Model):
StateID = models.AutoField(primary_key = True)
StateName = models.CharField(max_length = 30, default='State Name')
StateAbbreviation = models.CharField(max_length = 4, default='SN')
Population = models.IntegerField(default = 0)
NationID = models.ForeignKey(Nation, on_delete=models.CASCADE)
class City(models.Model):
CityID = models.AutoField(primary_key = True)
CityName = models.CharField(max_length = 30, default='City Name')
Population = models.IntegerField(default = 0)
StateID = models.ForeignKey(State, on_delete=models.CASCADE)
我想返回的内容大致如下:
[{
'StateName': 'California'
, 'NationID__NationName': 'United States'
, 'Population': 90000000
, 'CityList': [{'CityName': 'Los Angeles', 'Population': 4000000},{'CityName': 'San Francisco', 'Population': 2000000}, ...more cities]
}, {
'StateName': 'Texas'
, 'NationID__NationName': 'United States'
, 'Population': 50000000
, 'CityList': [{'CityName': 'Austin', 'Population': 1000000},{'CityName': 'Dallas', 'Population': 2000000}, ...more cities]
},
...more states
]
现在,我很想使用下面的查询,但它当然不起作用,因为我不知道如何将列表返回到values()
返回对象中。这可能吗?你知道吗
StateList = State.objects.values('StateName', 'NationID__NationName', 'Population').annotate(
CityList = City.objects.values('CityName', 'Population')
)
我知道我可以做下面的查询,但是州信息(州名,国家名,州人口)会被复制到每个城市。你知道吗
StateList = State.objects.values('StateName', 'NationID__NationName', 'Population', 'city__CityName', 'city__Population')
非常感谢!你知道吗
SQL查询没有提供预期的输出。它提供了平坦的输出。所以,我想做以下几点:
相关问题 更多 >
编程相关推荐