gpt4 book ai didi

javascript - Django,查询一对多关系的简单方法?

转载 作者:太空宇宙 更新时间:2023-11-03 19:29:36 25 4
gpt4 key购买 nike

所以我想在javascript中返回两个表的字典,一个是Category表,一个是Sub_category表,其中category = models.ForeignKey(Category)。字典因此为“Category1”:“Sub_cat1,Sub_cat2,...”。我做了以下代码,但看起来效率很低,所以你们能帮我找到另一种方法吗?

谢谢!

from models import Sub_category, Category
# Extra unnecessary query?
def get_json_sub_categories(category):
return get_json(Sub_category.objects.filter(category_id=Category.objects.filter(name=category).values('pk')[0]['pk']).values('name'))

添加:字典应包含所有类别及其各自的子类别。我可能可以创建一个循环或其他东西,并为每个类别调用一个查询,但这是很多查询。是否有一个查询可以以字典样式获取所有类别及其各自的子类别?

我这样做了:

from models import Sub_category, Category
import json
def get_sub_categories():
return Sub_category.objects.all().values('name', 'category__name')

def get_dict_sub_categories():
sub_dict = {}
sub_queryset = get_sub_categories()
for x in sub_queryset:
if x['category__name'] not in sub_dict:
sub_dict[x['category__name']] = [x['name']]
else:
sub_dict[x['category__name']].append(x['name'])
return sub_dict

def get_json_sub_categories():
return json.dumps(get_dict_sub_categories())

有什么更高效/更快的方法吗?我的代码看起来没问题吗?我还假设这只需一个查询即可完成。这是真的吗?

最佳答案

Sub_category.objects.filter(category__name=category).values('name')

关于javascript - Django,查询一对多关系的简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6631639/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com