Python 如何从查询中获取另一个对象内部的对象?

Python 如何从查询中获取另一个对象内部的对象?,python,django,Python,Django,我不知道怎么问,但很简单 我有一个叫做“国家”的实体和另一个叫做“城市”的实体 我正在使用给定参数查询特定城市: cities = City.objects.filter(code__exact=12345).values("id","name","state") 然后我序列化列表(或dict?=以便通过JSON获取它们: for c in cities: result.append(c) return HttpResponse(json.dumps(result)) 问题是我只获取

我不知道怎么问,但很简单

我有一个叫做“国家”的实体和另一个叫做“城市”的实体

我正在使用给定参数查询特定城市:

cities = City.objects.filter(code__exact=12345).values("id","name","state")
然后我序列化列表(或dict?=以便通过JSON获取它们:

for c in cities:
    result.append(c)
return HttpResponse(json.dumps(result))

问题是我只获取状态ID,但我需要从该对象获取另一个属性,如何在城市内部初始化状态对象,或者至少从状态对象获取特定属性。

调用
values()
的结果是
ValueQuerySet
,这在几个方面都很特殊。其中之一是:

当您知道您只需要 来自少量可用字段的值,您不需要 模型实例对象的功能。使用 仅选择需要使用的字段

粗体部分很重要。这意味着查询集的结果将不包含模型的实例,您必须准确地告诉它需要获取什么

因此,如果您知道要在结果中显示的状态模型的字段,可以将它们添加到values子句中。如果您只需输入
状态
,它将为您提供状态id,这是默认的标识字段

cities = City.objects.filter(code__exact=12345).values("id",
                                                       "name",
                                                       "state__name",
                                                       "state__id")
如果您这样做只是为了将结果转换为json,请使用内置的:


values()
调用的结果是一个
ValueQuerySet
,它在几个方面都很特殊。其中之一是:

当您知道您只需要 来自少量可用字段的值,您不需要 模型实例对象的功能。使用 仅选择需要使用的字段

粗体部分很重要。这意味着查询集的结果将不包含模型的实例,您必须准确地告诉它需要获取什么

因此,如果您知道要在结果中显示的状态模型的字段,可以将它们添加到values子句中。如果您只需输入
状态
,它将为您提供状态id,这是默认的标识字段

cities = City.objects.filter(code__exact=12345).values("id",
                                                       "name",
                                                       "state__name",
                                                       "state__id")
如果您这样做只是为了将结果转换为json,请使用内置的:


values()
调用的结果是一个
ValueQuerySet
,它在几个方面都很特殊。其中之一是:

当您知道您只需要 来自少量可用字段的值,您不需要 模型实例对象的功能。使用 仅选择需要使用的字段

粗体部分很重要。这意味着查询集的结果将不包含模型的实例,您必须准确地告诉它需要获取什么

因此,如果您知道要在结果中显示的状态模型的字段,可以将它们添加到values子句中。如果您只需输入
状态
,它将为您提供状态id,这是默认的标识字段

cities = City.objects.filter(code__exact=12345).values("id",
                                                       "name",
                                                       "state__name",
                                                       "state__id")
如果您这样做只是为了将结果转换为json,请使用内置的:


values()
调用的结果是一个
ValueQuerySet
,它在几个方面都很特殊。其中之一是:

当您知道您只需要 来自少量可用字段的值,您不需要 模型实例对象的功能。使用 仅选择需要使用的字段

粗体部分很重要。这意味着查询集的结果将不包含模型的实例,您必须准确地告诉它需要获取什么

因此,如果您知道要在结果中显示的状态模型的字段,可以将它们添加到values子句中。如果您只需输入
状态
,它将为您提供状态id,这是默认的标识字段

cities = City.objects.filter(code__exact=12345).values("id",
                                                       "name",
                                                       "state__name",
                                                       "state__id")
如果您这样做只是为了将结果转换为json,请使用内置的:


你可以在
values()
中使用常用的双下划线表示法,例如
'state\uuu name'
。关于django,我有很多东西要学,比如这个哈哈哈,这很好!谢谢!:)你应该回答:PHappy to help@BurhanKhalid给出了一个详细的答案,我建议你接受这个答案。你可以在
values()
中使用通常的双下划线符号,例如
“state\uu name”
。我有很多关于django的知识要学习,就像这样哈哈哈,这非常有效!谢谢!:)你应该这样回答:PHappy来帮忙@BurhanKhalid给出了一个详细的答案,我建议你接受这个答案。你可以在
values()
中使用通常的双下划线符号,例如
“state\uu name”
。我有很多关于django的知识要学习,就像这样哈哈哈,这非常有效!谢谢!:)你应该这样回答:PHappy来帮忙@BurhanKhalid给出了一个详细的答案,我建议你接受这个答案。你可以在
values()
中使用通常的双下划线符号,例如
“state\uu name”
。我有很多关于django的知识要学习,就像这样哈哈哈,这非常有效!谢谢!:)你应该这样回答:PHappy来帮忙@伯汉哈利德给出了详细的回答,我建议你接受这个答案。