【发布时间】:2021-07-13 06:36:02
【问题描述】:
假设,我有一个查询:
qs = demo.objects.filter(id=id).values_list('name','price')
我有一个序列化器:
Class DemoSerialzier(serialzier.Modelserialzier):
class Meta:
model = Demo
fields = ['name','price']
如何序列化我的 qs?当我通过序列化程序传递我的 qs 时,它会给出一个 AttributeError。 Django 试图在序列化程序上找到一个字段并且元组对象没有属性'name'。
【问题讨论】:
-
你应该传递查询集而不是值列表查询集:删除对
values_list的调用 -
我有三个相互关联的模型。使用值列表我可以使我的查询更快,这就是我想使用它的原因。任何替代想法如何实现这一目标?
-
您能否将模型和实际查询添加到您的问题中?提供的查询看起来只是获取模型上的两个字段并且没有关系
-
如果您只想从数据库中检索某些字段,可以使用
only() -
like: qs = Demo.objects.filter(a_fk__another_fk__id = id, a_fk__date_time=timezone.now()) 我想让它更快。你能检查一下吗
标签: django django-models django-rest-framework django-queryset