summaryrefslogtreecommitdiff
path: root/tests/foreign_object/models/empty_join.py
diff options
context:
space:
mode:
Diffstat (limited to 'tests/foreign_object/models/empty_join.py')
-rw-r--r--tests/foreign_object/models/empty_join.py63
1 files changed, 35 insertions, 28 deletions
diff --git a/tests/foreign_object/models/empty_join.py b/tests/foreign_object/models/empty_join.py
index da151ae8e7..9c0ada378c 100644
--- a/tests/foreign_object/models/empty_join.py
+++ b/tests/foreign_object/models/empty_join.py
@@ -9,6 +9,7 @@ class CustomForeignObjectRel(models.ForeignObjectRel):
Define some extra Field methods so this Rel acts more like a Field, which
lets us use ReverseManyToOneDescriptor in both directions.
"""
+
@property
def foreign_related_fields(self):
return tuple(lhs_field for lhs_field, rhs_field in self.field.related_fields)
@@ -23,6 +24,7 @@ class StartsWithRelation(models.ForeignObject):
the default equality operator. This is logically a many-to-many relation
and creates a ReverseManyToOneDescriptor in both directions.
"""
+
auto_created = False
many_to_many = False
@@ -33,7 +35,7 @@ class StartsWithRelation(models.ForeignObject):
rel_class = CustomForeignObjectRel
def __init__(self, *args, **kwargs):
- kwargs['on_delete'] = models.DO_NOTHING
+ kwargs["on_delete"] = models.DO_NOTHING
super().__init__(*args, **kwargs)
@property
@@ -54,28 +56,32 @@ class StartsWithRelation(models.ForeignObject):
def get_path_info(self, filtered_relation=None):
to_opts = self.remote_field.model._meta
from_opts = self.model._meta
- return [PathInfo(
- from_opts=from_opts,
- to_opts=to_opts,
- target_fields=(to_opts.pk,),
- join_field=self,
- m2m=False,
- direct=False,
- filtered_relation=filtered_relation,
- )]
+ return [
+ PathInfo(
+ from_opts=from_opts,
+ to_opts=to_opts,
+ target_fields=(to_opts.pk,),
+ join_field=self,
+ m2m=False,
+ direct=False,
+ filtered_relation=filtered_relation,
+ )
+ ]
def get_reverse_path_info(self, filtered_relation=None):
to_opts = self.model._meta
from_opts = self.remote_field.model._meta
- return [PathInfo(
- from_opts=from_opts,
- to_opts=to_opts,
- target_fields=(to_opts.pk,),
- join_field=self.remote_field,
- m2m=False,
- direct=False,
- filtered_relation=filtered_relation,
- )]
+ return [
+ PathInfo(
+ from_opts=from_opts,
+ to_opts=to_opts,
+ target_fields=(to_opts.pk,),
+ join_field=self.remote_field,
+ m2m=False,
+ direct=False,
+ filtered_relation=filtered_relation,
+ )
+ ]
def contribute_to_class(self, cls, name, private_only=False):
super().contribute_to_class(cls, name, private_only)
@@ -87,6 +93,7 @@ class BrokenContainsRelation(StartsWithRelation):
This model is designed to yield no join conditions and
raise an exception in ``Join.as_sql()``.
"""
+
def get_extra_restriction(self, alias, related_alias):
return None
@@ -94,19 +101,19 @@ class BrokenContainsRelation(StartsWithRelation):
class SlugPage(models.Model):
slug = models.CharField(max_length=20, unique=True)
descendants = StartsWithRelation(
- 'self',
- from_fields=['slug'],
- to_fields=['slug'],
- related_name='ascendants',
+ "self",
+ from_fields=["slug"],
+ to_fields=["slug"],
+ related_name="ascendants",
)
containers = BrokenContainsRelation(
- 'self',
- from_fields=['slug'],
- to_fields=['slug'],
+ "self",
+ from_fields=["slug"],
+ to_fields=["slug"],
)
class Meta:
- ordering = ['slug']
+ ordering = ["slug"]
def __str__(self):
- return 'SlugPage %s' % self.slug
+ return "SlugPage %s" % self.slug