Ticket #7076: 7076.1.diff

File 7076.1.diff, 1.6 KB (added by Johannes Dollinger, 16 years ago)
  • django/db/models/sql/query.py

     
    10251025                self.promote_alias(table)
    10261026
    10271027        self.where.add((alias, col, field, lookup_type, value), connector)
     1028
    10281029        if negate:
    10291030            for alias in join_list:
    10301031                self.promote_alias(alias)
    1031             if final > 1 and lookup_type != 'isnull':
    1032                 for alias in join_list:
    1033                     if self.alias_map[alias] == self.LOUTER:
    1034                         j_col = self.alias_map[alias][RHS_JOIN_COL]
    1035                         entry = Node([(alias, j_col, None, 'isnull', True)])
    1036                         entry.negate()
    1037                         self.where.add(entry, AND)
    1038                         break
     1032            if lookup_type != 'isnull':
     1033                if final > 1:
     1034                    for alias in join_list:
     1035                        if self.alias_map[alias][JOIN_TYPE] == self.LOUTER:
     1036                            j_col = self.alias_map[alias][RHS_JOIN_COL]
     1037                            entry = Node([(alias, j_col, None, 'isnull', True)])
     1038                            entry.negate()
     1039                            self.where.add(entry, AND)
     1040                            break
     1041                else:
     1042                    entry = Node([(alias, col, field, 'isnull', True)])
     1043                    entry.negate()
     1044                    self.where.add(entry, AND)
     1045               
     1046                   
    10391047        if can_reuse is not None:
    10401048            can_reuse.update(join_list)
    10411049
Back to Top