针对模型实例测试 Q 对象

Test Q objects against model instance

是否可以测试单个模型实例是否满足Q对象的条件? 那么,有没有像is_q_satisified:

这样的函数
article = Article.objects.filter(title='Foo')[0]
q = Q(title='Foo')
assert is_q_satisfied(q, article)

没有内置的 is_q_satisified,但您可以通过过滤 q 和对象的主键来自己制作一个。

# Note I've used get() to return an object, 
# instead of filter(), which returns a queryset.
article = Article.objects.get(title='Foo')

def is_q_satisfied(obj, q):
    return type(obj).objects.filter(q).filter(pk=obj.pk).exists()

q = Q(title='Foo')
is_q_satisfied(article, q)