瀏覽代碼

Fixed #26026 -- Fixed isinstance crash comparing EmptyQuerySet to non-QuerySet.

Anderson Resende 9 年之前
父節點
當前提交
b5f8c81ce1
共有 2 個文件被更改,包括 2 次插入1 次删除
  1. 1 1
      django/db/models/query.py
  2. 1 0
      tests/basic/tests.py

+ 1 - 1
django/db/models/query.py

@@ -1171,7 +1171,7 @@ class QuerySet(object):
 
 class InstanceCheckMeta(type):
     def __instancecheck__(self, instance):
-        return instance.query.is_empty()
+        return isinstance(instance, QuerySet) and instance.query.is_empty()
 
 
 class EmptyQuerySet(six.with_metaclass(InstanceCheckMeta)):

+ 1 - 0
tests/basic/tests.py

@@ -367,6 +367,7 @@ class ModelTest(TestCase):
         with self.assertRaises(TypeError):
             EmptyQuerySet()
         self.assertIsInstance(Article.objects.none(), EmptyQuerySet)
+        self.assertFalse(isinstance('', EmptyQuerySet))
 
     def test_emptyqs_values(self):
         # test for #15959