Reformat using black
This commit is contained in:
parent
efee4ad081
commit
a87fb49918
221 changed files with 19127 additions and 7310 deletions
|
@ -10,13 +10,18 @@ from django.utils import six
|
|||
from judge.utils.cachedict import CacheDict
|
||||
|
||||
|
||||
def unique_together_left_join(queryset, model, link_field_name, filter_field_name, filter_value, parent_model=None):
|
||||
def unique_together_left_join(
|
||||
queryset, model, link_field_name, filter_field_name, filter_value, parent_model=None
|
||||
):
|
||||
link_field = copy(model._meta.get_field(link_field_name).remote_field)
|
||||
filter_field = model._meta.get_field(filter_field_name)
|
||||
|
||||
def restrictions(where_class, alias, related_alias):
|
||||
cond = where_class()
|
||||
cond.add(filter_field.get_lookup('exact')(filter_field.get_col(alias), filter_value), 'AND')
|
||||
cond.add(
|
||||
filter_field.get_lookup("exact")(filter_field.get_col(alias), filter_value),
|
||||
"AND",
|
||||
)
|
||||
return cond
|
||||
|
||||
link_field.get_extra_restriction = restrictions
|
||||
|
@ -25,17 +30,36 @@ def unique_together_left_join(queryset, model, link_field_name, filter_field_nam
|
|||
parent_alias = parent_model._meta.db_table
|
||||
else:
|
||||
parent_alias = queryset.query.get_initial_alias()
|
||||
return queryset.query.join(Join(model._meta.db_table, parent_alias, None, LOUTER, link_field, True))
|
||||
return queryset.query.join(
|
||||
Join(model._meta.db_table, parent_alias, None, LOUTER, link_field, True)
|
||||
)
|
||||
|
||||
|
||||
class RawSQLJoin(Join):
|
||||
def __init__(self, subquery, subquery_params, parent_alias, table_alias, join_type, join_field, nullable,
|
||||
filtered_relation=None):
|
||||
def __init__(
|
||||
self,
|
||||
subquery,
|
||||
subquery_params,
|
||||
parent_alias,
|
||||
table_alias,
|
||||
join_type,
|
||||
join_field,
|
||||
nullable,
|
||||
filtered_relation=None,
|
||||
):
|
||||
self.subquery_params = subquery_params
|
||||
super().__init__(subquery, parent_alias, table_alias, join_type, join_field, nullable, filtered_relation)
|
||||
super().__init__(
|
||||
subquery,
|
||||
parent_alias,
|
||||
table_alias,
|
||||
join_type,
|
||||
join_field,
|
||||
nullable,
|
||||
filtered_relation,
|
||||
)
|
||||
|
||||
def as_sql(self, compiler, connection):
|
||||
compiler.quote_cache[self.table_name] = '(%s)' % self.table_name
|
||||
compiler.quote_cache[self.table_name] = "(%s)" % self.table_name
|
||||
sql, params = super().as_sql(compiler, connection)
|
||||
return sql, self.subquery_params + params
|
||||
|
||||
|
@ -51,13 +75,23 @@ class FakeJoinField:
|
|||
pass
|
||||
|
||||
|
||||
def join_sql_subquery(queryset, subquery, params, join_fields, alias, join_type=INNER, parent_model=None):
|
||||
def join_sql_subquery(
|
||||
queryset, subquery, params, join_fields, alias, join_type=INNER, parent_model=None
|
||||
):
|
||||
if parent_model is not None:
|
||||
parent_alias = parent_model._meta.db_table
|
||||
else:
|
||||
parent_alias = queryset.query.get_initial_alias()
|
||||
queryset.query.external_aliases.add(alias)
|
||||
join = RawSQLJoin(subquery, params, parent_alias, alias, join_type, FakeJoinField(join_fields), join_type == LOUTER)
|
||||
join = RawSQLJoin(
|
||||
subquery,
|
||||
params,
|
||||
parent_alias,
|
||||
alias,
|
||||
join_type,
|
||||
FakeJoinField(join_fields),
|
||||
join_type == LOUTER,
|
||||
)
|
||||
queryset.query.join(join)
|
||||
join.table_alias = alias
|
||||
|
||||
|
@ -68,7 +102,7 @@ def RawSQLColumn(model, field=None):
|
|||
model = field.model
|
||||
if isinstance(field, six.string_types):
|
||||
field = model._meta.get_field(field)
|
||||
return RawSQL('%s.%s' % (model._meta.db_table, field.get_attname_column()[1]), ())
|
||||
return RawSQL("%s.%s" % (model._meta.db_table, field.get_attname_column()[1]), ())
|
||||
|
||||
|
||||
def make_straight_join_query(QueryType):
|
||||
|
@ -77,7 +111,7 @@ def make_straight_join_query(QueryType):
|
|||
alias = super().join(join, *args, **kwargs)
|
||||
join = self.alias_map[alias]
|
||||
if join.join_type == INNER:
|
||||
join.join_type = 'STRAIGHT_JOIN'
|
||||
join.join_type = "STRAIGHT_JOIN"
|
||||
return alias
|
||||
|
||||
return Query
|
||||
|
@ -87,7 +121,7 @@ straight_join_cache = CacheDict(make_straight_join_query)
|
|||
|
||||
|
||||
def use_straight_join(queryset):
|
||||
if connections[queryset.db].vendor != 'mysql':
|
||||
if connections[queryset.db].vendor != "mysql":
|
||||
return
|
||||
try:
|
||||
cloner = queryset.query.chain
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue