瀏覽代碼

Fixed #32840 -- Optimized Field.get_col().

get_col() used "self" as "output_field" when it was not given, and
unnecessarily compared "self" to "self".

Co-authored-by: Chris Jerdonek <chris.jerdonek@gmail.com>
Co-authored-by: Mariusz Felisiak <felisiak.mariusz@gmail.com>
Keryn Knight 3 年之前
父節點
當前提交
5013798fe9
共有 1 個文件被更改,包括 6 次插入6 次删除
  1. 6 6
      django/db/models/fields/__init__.py

+ 6 - 6
django/db/models/fields/__init__.py

@@ -392,13 +392,13 @@ class Field(RegisterLookupMixin):
         return []
 
     def get_col(self, alias, output_field=None):
-        if output_field is None:
-            output_field = self
-        if alias != self.model._meta.db_table or output_field != self:
-            from django.db.models.expressions import Col
-            return Col(alias, self, output_field)
-        else:
+        if (
+            alias == self.model._meta.db_table and
+            (output_field is None or output_field == self)
+        ):
             return self.cached_col
+        from django.db.models.expressions import Col
+        return Col(alias, self, output_field)
 
     @cached_property
     def cached_col(self):