【发布时间】:2013-11-17 14:18:34
【问题描述】:
我对 django 很陌生 - 我想知道是否可以使用 ORM 更有效地进行以下查询:
# somewhere in views.py..
if slug is not None:
slug_field = self.get_slug_field()
pkid = FinalModel.objects.all().get(slug__exact=slug)
queryset = queryset.filter(owner__exact=pkid.id)
obj = queryset.get()
return obj
所以,基本上,我正在做的是(返回一个对象),首先:使用 url 中的 slug 获取 pkid,然后使用此信息 (pkid.id) 使用上面的查询集(在不同的模型上运行 - OnetToOne 键入 FinalModel)语句。
所以,简而言之,我首先使用slug(模型=FinalModel)提取PK,然后在另一个模型(queryset 模型)上使用这个PK,它是OneToOne 键入的FinalModel(使用 owner 属性)。
我不确定使用两个这样的语句对数据库是否有效(我也不是这方面的专家) - 我想知道是否有人可以建议我如何组合这两个语句(pkid 和 queryset ) 以更有效地获取最终对象。
抱歉,这是一个 django 101 问题。
【问题讨论】:
标签: django django-models django-views