gpt4 book ai didi

python - Django : Can we use . exclude() on .get() in django querysets

转载 作者:太空狗 更新时间:2023-10-29 17:27:49 26 4
gpt4 key购买 nike

我们可以用吗

 MyClass.objects.get(description='hi').exclude(status='unknown')

最佳答案

如果您在 get() 之前执行 exclude(),您的代码将按预期工作:

MyClass.objects.exclude(status='unknown').get(description='hi')

正如@Burhan Khalid 指出的那样,只有当结果查询恰好返回一行时,对 .get 的调用才会成功。

您还可以使用 Q object获取直接在.get中指定过滤器:

MyClass.objects.get(Q(description='hi') & ~Q(status='unknown'))

请注意,Q 对象只是必需的,因为您使用了 .exclude(并且 Django 的 ORM 没有不相等的字段查找,因此您必须使用 .exclude ).

如果您的原始代码是(请注意 .exclude 已替换为 .filter):

MyClass.objects.filter(status='unknown').get(description='hi')

...你可以简单地做:

MyClass.objects.get(status='unknown', description='hi')

关于python - Django : Can we use . exclude() on .get() in django querysets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18202440/

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