mirror of
https://github.com/django/django.git
synced 2025-10-23 21:59:11 +00:00
Fixed #21127 -- Started deprecation toward requiring on_delete for ForeignKey/OneToOneField
This commit is contained in:
committed by
Tim Graham
parent
87d55081ea
commit
c2e70f0265
@@ -56,7 +56,7 @@ class StateTests(SimpleTestCase):
|
||||
|
||||
class Book(models.Model):
|
||||
title = models.CharField(max_length=1000)
|
||||
author = models.ForeignKey(Author)
|
||||
author = models.ForeignKey(Author, models.CASCADE)
|
||||
contributors = models.ManyToManyField(Author)
|
||||
|
||||
class Meta:
|
||||
@@ -222,11 +222,12 @@ class StateTests(SimpleTestCase):
|
||||
name="SubTag",
|
||||
fields=[
|
||||
('tag_ptr', models.OneToOneField(
|
||||
'migrations.Tag',
|
||||
models.CASCADE,
|
||||
auto_created=True,
|
||||
primary_key=True,
|
||||
to_field='id',
|
||||
serialize=False,
|
||||
to='migrations.Tag',
|
||||
)),
|
||||
("awesome", models.BooleanField()),
|
||||
],
|
||||
@@ -449,7 +450,11 @@ class StateTests(SimpleTestCase):
|
||||
self.assertIs(model_a_old._meta.get_field('b').related_model, model_b_old)
|
||||
self.assertIs(model_b_old._meta.get_field('a_ptr').related_model, model_a_old)
|
||||
|
||||
operation = AddField('c', 'to_a', models.OneToOneField('something.A', related_name='from_c'))
|
||||
operation = AddField('c', 'to_a', models.OneToOneField(
|
||||
'something.A',
|
||||
models.CASCADE,
|
||||
related_name='from_c',
|
||||
))
|
||||
operation.state_forwards('something', project_state)
|
||||
model_a_new = project_state.apps.get_model('something', 'A')
|
||||
model_b_new = project_state.apps.get_model('something', 'B')
|
||||
@@ -481,7 +486,7 @@ class StateTests(SimpleTestCase):
|
||||
apps = new_apps
|
||||
|
||||
class B(models.Model):
|
||||
to_a = models.ForeignKey(A)
|
||||
to_a = models.ForeignKey(A, models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
app_label = "something"
|
||||
@@ -621,7 +626,7 @@ class StateTests(SimpleTestCase):
|
||||
apps = new_apps
|
||||
|
||||
class Book(models.Model):
|
||||
author = models.ForeignKey(Author)
|
||||
author = models.ForeignKey(Author, models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
app_label = "migrations"
|
||||
@@ -661,7 +666,7 @@ class StateTests(SimpleTestCase):
|
||||
new_apps = Apps()
|
||||
|
||||
class TestModel(models.Model):
|
||||
ct = models.ForeignKey("contenttypes.ContentType")
|
||||
ct = models.ForeignKey("contenttypes.ContentType", models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
app_label = "migrations"
|
||||
@@ -697,7 +702,7 @@ class StateTests(SimpleTestCase):
|
||||
apps = new_apps
|
||||
|
||||
class Book(models.Model):
|
||||
author = models.ForeignKey(Author)
|
||||
author = models.ForeignKey(Author, models.CASCADE)
|
||||
|
||||
class Meta:
|
||||
app_label = "migrations"
|
||||
@@ -784,7 +789,7 @@ class ModelStateTests(SimpleTestCase):
|
||||
ModelState('app', 'Model', [('field', field)])
|
||||
|
||||
def test_sanity_check_to(self):
|
||||
field = models.ForeignKey(UnicodeModel)
|
||||
field = models.ForeignKey(UnicodeModel, models.CASCADE)
|
||||
with self.assertRaisesMessage(ValueError,
|
||||
'ModelState.fields cannot refer to a model class - "field.to" does. '
|
||||
'Use a string reference instead.'):
|
||||
@@ -911,35 +916,35 @@ class RelatedModelsTests(SimpleTestCase):
|
||||
self.assertRelated(B, [])
|
||||
|
||||
def test_direct_fk(self):
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B')])
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B', models.CASCADE)])
|
||||
B = self.create_model("B")
|
||||
self.assertRelated(A, [B])
|
||||
self.assertRelated(B, [A])
|
||||
|
||||
def test_direct_hidden_fk(self):
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B', related_name='+')])
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B', models.CASCADE, related_name='+')])
|
||||
B = self.create_model("B")
|
||||
self.assertRelated(A, [B])
|
||||
self.assertRelated(B, [A])
|
||||
|
||||
def test_nested_fk(self):
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B')])
|
||||
B = self.create_model("B", foreign_keys=[models.ForeignKey('C')])
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B', models.CASCADE)])
|
||||
B = self.create_model("B", foreign_keys=[models.ForeignKey('C', models.CASCADE)])
|
||||
C = self.create_model("C")
|
||||
self.assertRelated(A, [B, C])
|
||||
self.assertRelated(B, [A, C])
|
||||
self.assertRelated(C, [A, B])
|
||||
|
||||
def test_two_sided(self):
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B')])
|
||||
B = self.create_model("B", foreign_keys=[models.ForeignKey('A')])
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B', models.CASCADE)])
|
||||
B = self.create_model("B", foreign_keys=[models.ForeignKey('A', models.CASCADE)])
|
||||
self.assertRelated(A, [B])
|
||||
self.assertRelated(B, [A])
|
||||
|
||||
def test_circle(self):
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B')])
|
||||
B = self.create_model("B", foreign_keys=[models.ForeignKey('C')])
|
||||
C = self.create_model("C", foreign_keys=[models.ForeignKey('A')])
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B', models.CASCADE)])
|
||||
B = self.create_model("B", foreign_keys=[models.ForeignKey('C', models.CASCADE)])
|
||||
C = self.create_model("C", foreign_keys=[models.ForeignKey('A', models.CASCADE)])
|
||||
self.assertRelated(A, [B, C])
|
||||
self.assertRelated(B, [A, C])
|
||||
self.assertRelated(C, [A, B])
|
||||
@@ -985,7 +990,7 @@ class RelatedModelsTests(SimpleTestCase):
|
||||
self.assertRelated(Z, [Y])
|
||||
|
||||
def test_base_to_base_fk(self):
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('Y')])
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('Y', models.CASCADE)])
|
||||
B = self.create_model("B", bases=(A,))
|
||||
Y = self.create_model("Y")
|
||||
Z = self.create_model("Z", bases=(Y,))
|
||||
@@ -995,7 +1000,7 @@ class RelatedModelsTests(SimpleTestCase):
|
||||
self.assertRelated(Z, [A, B, Y])
|
||||
|
||||
def test_base_to_subclass_fk(self):
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('Z')])
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('Z', models.CASCADE)])
|
||||
B = self.create_model("B", bases=(A,))
|
||||
Y = self.create_model("Y")
|
||||
Z = self.create_model("Z", bases=(Y,))
|
||||
@@ -1016,14 +1021,20 @@ class RelatedModelsTests(SimpleTestCase):
|
||||
|
||||
def test_intermediate_m2m_self(self):
|
||||
A = self.create_model("A", foreign_keys=[models.ManyToManyField('A', through='T')])
|
||||
T = self.create_model("T", foreign_keys=[models.ForeignKey('A'), models.ForeignKey('A')])
|
||||
T = self.create_model("T", foreign_keys=[
|
||||
models.ForeignKey('A', models.CASCADE),
|
||||
models.ForeignKey('A', models.CASCADE),
|
||||
])
|
||||
self.assertRelated(A, [T])
|
||||
self.assertRelated(T, [A])
|
||||
|
||||
def test_intermediate_m2m(self):
|
||||
A = self.create_model("A", foreign_keys=[models.ManyToManyField('B', through='T')])
|
||||
B = self.create_model("B")
|
||||
T = self.create_model("T", foreign_keys=[models.ForeignKey('A'), models.ForeignKey('B')])
|
||||
T = self.create_model("T", foreign_keys=[
|
||||
models.ForeignKey('A', models.CASCADE),
|
||||
models.ForeignKey('B', models.CASCADE),
|
||||
])
|
||||
self.assertRelated(A, [B, T])
|
||||
self.assertRelated(B, [A, T])
|
||||
self.assertRelated(T, [A, B])
|
||||
@@ -1033,7 +1044,9 @@ class RelatedModelsTests(SimpleTestCase):
|
||||
B = self.create_model("B")
|
||||
Z = self.create_model("Z")
|
||||
T = self.create_model("T", foreign_keys=[
|
||||
models.ForeignKey('A'), models.ForeignKey('B'), models.ForeignKey('Z'),
|
||||
models.ForeignKey('A', models.CASCADE),
|
||||
models.ForeignKey('B', models.CASCADE),
|
||||
models.ForeignKey('Z', models.CASCADE),
|
||||
])
|
||||
self.assertRelated(A, [B, T, Z])
|
||||
self.assertRelated(B, [A, T, Z])
|
||||
@@ -1044,15 +1057,23 @@ class RelatedModelsTests(SimpleTestCase):
|
||||
A = self.create_model("A", foreign_keys=[models.ManyToManyField('B', through='T')])
|
||||
B = self.create_model("B")
|
||||
S = self.create_model("S")
|
||||
T = self.create_model("T", foreign_keys=[models.ForeignKey('A'), models.ForeignKey('B')], bases=(S,))
|
||||
T = self.create_model("T", foreign_keys=[
|
||||
models.ForeignKey('A', models.CASCADE),
|
||||
models.ForeignKey('B', models.CASCADE),
|
||||
], bases=(S,))
|
||||
self.assertRelated(A, [B, S, T])
|
||||
self.assertRelated(B, [A, S, T])
|
||||
self.assertRelated(S, [A, B, T])
|
||||
self.assertRelated(T, [A, B, S])
|
||||
|
||||
def test_generic_fk(self):
|
||||
A = self.create_model("A", foreign_keys=[models.ForeignKey('B'), GenericForeignKey()])
|
||||
B = self.create_model("B", foreign_keys=[models.ForeignKey('C')])
|
||||
A = self.create_model("A", foreign_keys=[
|
||||
models.ForeignKey('B', models.CASCADE),
|
||||
GenericForeignKey(),
|
||||
])
|
||||
B = self.create_model("B", foreign_keys=[
|
||||
models.ForeignKey('C', models.CASCADE),
|
||||
])
|
||||
self.assertRelated(A, [B])
|
||||
self.assertRelated(B, [A])
|
||||
|
||||
|
||||
Reference in New Issue
Block a user