【发布时间】:2017-01-23 13:37:33
【问题描述】:
假设我的模型中有两个表:
class Country(models.Model):
CountryName = models.CharField(max_length=20)
class City(models.Model):
CityName = models.CharField(max_length=20)
Country = models.ForeignKey(Country)
在我看来,我制作了一个 json:
list = City.objects.annotate(CountryName=F('Country__CountryName')).values('CityName', 'CountryName').prefetch_related('Country')
return HttpResponse(json.dumps([any_entry for any_entry in list]))
结果我收到如下内容:
{[{CityName: 'Vancouver', CountryName: 'Canada'},
{CityName: 'Montreal', CountryName: 'Canada'},
{CityName: 'Dallas', CountryName: 'USA'}]}
虽然我想要类似的东西:
{[
{
CountryName: 'Canada',
Cities: [{CityName: 'Vancouver'},
{CityName: 'Montreal'}]
},
{
CountryName: 'USA',
Cities: [{CityName: 'Dallas'}]
}
]}
或者至少:
{
Canada: ['vancouver','Montreal'],
USA: ['Dallas']
}
【问题讨论】:
-
检查这里看看是否有帮助:stackoverflow.com/questions/12731897/…
-
@souldeux:谢谢,但是如果我有 3 个级别而不是 2 个级别会怎样。(考虑添加状态)您确定这种方法具有最佳性能吗?
标签: json ajax django python-3.x django-queryset