Sha*_*gde 13 python django django-models
我们可以用吗?
MyClass.objects.get(description='hi').exclude(status='unknown')
Run Code Online (Sandbox Code Playgroud)
cod*_*ape 19
如果您执行以下操作exclude()之前,您的代码将按预期工作get():
MyClass.objects.exclude(status='unknown').get(description='hi')
Run Code Online (Sandbox Code Playgroud)
正如@Burhan Khalid指出的那样,.get只有在结果查询返回一行时,调用才会成功.
您还可以使用该Q对象直接在以下位置指定过滤器.get:
MyClass.objects.get(Q(description='hi') & ~Q(status='unknown'))
Run Code Online (Sandbox Code Playgroud)
请注意,Q对象仅是必需的,因为您使用了.exclude(并且Django的ORM没有不相等的字段查找,因此您必须使用.exclude).
如果您的原始代码已经存在(请注意.exclude已替换为.filter):
MyClass.objects.filter(status='unknown').get(description='hi')
Run Code Online (Sandbox Code Playgroud)
......你可以这样做:
MyClass.objects.get(status='unknown', description='hi')
Run Code Online (Sandbox Code Playgroud)