|
@@ -874,10 +874,14 @@ class AccessorClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.rel' clashes with field name 'Target.model_set'.",
|
|
|
- hint=("Rename field 'Target.model_set', or add/change "
|
|
|
- "a related_name argument to the definition "
|
|
|
- "for field 'Model.rel'."),
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.rel' "
|
|
|
+ "clashes with field name "
|
|
|
+ "'invalid_models_tests.Target.model_set'.",
|
|
|
+ hint=(
|
|
|
+ "Rename field 'invalid_models_tests.Target.model_set', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.rel'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('rel'),
|
|
|
id='fields.E302',
|
|
|
),
|
|
@@ -893,19 +897,25 @@ class AccessorClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.foreign' clashes with reverse accessor for 'Model.m2m'.",
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.foreign' "
|
|
|
+ "clashes with reverse accessor for "
|
|
|
+ "'invalid_models_tests.Model.m2m'.",
|
|
|
hint=(
|
|
|
"Add or change a related_name argument to the definition "
|
|
|
- "for 'Model.foreign' or 'Model.m2m'."
|
|
|
+ "for 'invalid_models_tests.Model.foreign' or "
|
|
|
+ "'invalid_models_tests.Model.m2m'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('foreign'),
|
|
|
id='fields.E304',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.m2m' clashes with reverse accessor for 'Model.foreign'.",
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.m2m' "
|
|
|
+ "clashes with reverse accessor for "
|
|
|
+ "'invalid_models_tests.Model.foreign'.",
|
|
|
hint=(
|
|
|
"Add or change a related_name argument to the definition "
|
|
|
- "for 'Model.m2m' or 'Model.foreign'."
|
|
|
+ "for 'invalid_models_tests.Model.m2m' or "
|
|
|
+ "'invalid_models_tests.Model.foreign'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('m2m'),
|
|
|
id='fields.E304',
|
|
@@ -929,10 +939,13 @@ class AccessorClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.children' clashes with field name 'Child.m2m_clash'.",
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.children' "
|
|
|
+ "clashes with field name "
|
|
|
+ "'invalid_models_tests.Child.m2m_clash'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Child.m2m_clash', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.children'."
|
|
|
+ "Rename field 'invalid_models_tests.Child.m2m_clash', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.children'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('children'),
|
|
|
id='fields.E302',
|
|
@@ -1000,10 +1013,12 @@ class ReverseQueryNameClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.rel' clashes with field name 'Target.model'.",
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.rel' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Target.model'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Target.model', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.rel'."
|
|
|
+ "Rename field 'invalid_models_tests.Target.model', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.rel'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('rel'),
|
|
|
id='fields.E303',
|
|
@@ -1056,19 +1071,23 @@ class ExplicitRelatedNameClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.rel' clashes with field name 'Target.clash'.",
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.rel' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Target.clash'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Target.clash', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.rel'."
|
|
|
+ "Rename field 'invalid_models_tests.Target.clash', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.rel'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('rel'),
|
|
|
id='fields.E302',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.rel' clashes with field name 'Target.clash'.",
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.rel' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Target.clash'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Target.clash', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.rel'."
|
|
|
+ "Rename field 'invalid_models_tests.Target.clash', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.rel'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('rel'),
|
|
|
id='fields.E303',
|
|
@@ -1162,10 +1181,12 @@ class ExplicitRelatedQueryNameClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.rel' clashes with field name 'Target.clash'.",
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.rel' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Target.clash'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Target.clash', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.rel'."
|
|
|
+ "Rename field 'invalid_models_tests.Target.clash', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.rel'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('rel'),
|
|
|
id='fields.E303',
|
|
@@ -1183,19 +1204,25 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.first_m2m' clashes with reverse accessor for 'Model.second_m2m'.",
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.first_m2m' "
|
|
|
+ "clashes with reverse accessor for "
|
|
|
+ "'invalid_models_tests.Model.second_m2m'.",
|
|
|
hint=(
|
|
|
"Add or change a related_name argument to the definition "
|
|
|
- "for 'Model.first_m2m' or 'Model.second_m2m'."
|
|
|
+ "for 'invalid_models_tests.Model.first_m2m' or "
|
|
|
+ "'invalid_models_tests.Model.second_m2m'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('first_m2m'),
|
|
|
id='fields.E304',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.second_m2m' clashes with reverse accessor for 'Model.first_m2m'.",
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.second_m2m' "
|
|
|
+ "clashes with reverse accessor for "
|
|
|
+ "'invalid_models_tests.Model.first_m2m'.",
|
|
|
hint=(
|
|
|
"Add or change a related_name argument to the definition "
|
|
|
- "for 'Model.second_m2m' or 'Model.first_m2m'."
|
|
|
+ "for 'invalid_models_tests.Model.second_m2m' or "
|
|
|
+ "'invalid_models_tests.Model.first_m2m'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('second_m2m'),
|
|
|
id='fields.E304',
|
|
@@ -1208,10 +1235,13 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.model_set' clashes with field name 'Model.model_set'.",
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.model_set' "
|
|
|
+ "clashes with field name "
|
|
|
+ "'invalid_models_tests.Model.model_set'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Model.model_set', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.model_set'."
|
|
|
+ "Rename field 'invalid_models_tests.Model.model_set', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.model_set'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('model_set'),
|
|
|
id='fields.E302',
|
|
@@ -1224,10 +1254,12 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.model' clashes with field name 'Model.model'.",
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.model' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Model.model'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Model.model', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.model'."
|
|
|
+ "Rename field 'invalid_models_tests.Model.model', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.model'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('model'),
|
|
|
id='fields.E303',
|
|
@@ -1241,19 +1273,23 @@ class SelfReferentialM2MClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.m2m' clashes with field name 'Model.clash'.",
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.m2m' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Model.clash'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Model.clash', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.m2m'."
|
|
|
+ "Rename field 'invalid_models_tests.Model.clash', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.m2m'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('m2m'),
|
|
|
id='fields.E302',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.m2m' clashes with field name 'Model.clash'.",
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.m2m' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Model.clash'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Model.clash', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.m2m'."
|
|
|
+ "Rename field 'invalid_models_tests.Model.clash', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.m2m'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('m2m'),
|
|
|
id='fields.E303',
|
|
@@ -1277,11 +1313,13 @@ class SelfReferentialFKClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.model_set' clashes with field name 'Model.model_set'.",
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.model_set' "
|
|
|
+ "clashes with field name "
|
|
|
+ "'invalid_models_tests.Model.model_set'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Model.model_set', or add/change "
|
|
|
- "a related_name argument to the definition "
|
|
|
- "for field 'Model.model_set'."
|
|
|
+ "Rename field 'invalid_models_tests.Model.model_set', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.model_set'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('model_set'),
|
|
|
id='fields.E302',
|
|
@@ -1294,10 +1332,12 @@ class SelfReferentialFKClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.model' clashes with field name 'Model.model'.",
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.model' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Model.model'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Model.model', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.model'."
|
|
|
+ "Rename field 'invalid_models_tests.Model.model', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.model'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('model'),
|
|
|
id='fields.E303',
|
|
@@ -1311,19 +1351,23 @@ class SelfReferentialFKClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.foreign' clashes with field name 'Model.clash'.",
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.foreign' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Model.clash'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Model.clash', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.foreign'."
|
|
|
+ "Rename field 'invalid_models_tests.Model.clash', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.foreign'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('foreign'),
|
|
|
id='fields.E302',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.foreign' clashes with field name 'Model.clash'.",
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.foreign' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Model.clash'.",
|
|
|
hint=(
|
|
|
- "Rename field 'Model.clash', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.foreign'."
|
|
|
+ "Rename field 'invalid_models_tests.Model.clash', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.foreign'."
|
|
|
),
|
|
|
obj=Model._meta.get_field('foreign'),
|
|
|
id='fields.E303',
|
|
@@ -1355,89 +1399,144 @@ class ComplexClashTests(SimpleTestCase):
|
|
|
|
|
|
self.assertEqual(Model.check(), [
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.foreign_1' clashes with field name 'Target.id'.",
|
|
|
- hint=("Rename field 'Target.id', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.foreign_1'."),
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.foreign_1' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Target.id'.",
|
|
|
+ hint=(
|
|
|
+ "Rename field 'invalid_models_tests.Target.id', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.foreign_1'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('foreign_1'),
|
|
|
id='fields.E302',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.foreign_1' clashes with field name 'Target.id'.",
|
|
|
- hint=("Rename field 'Target.id', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.foreign_1'."),
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.foreign_1' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Target.id'.",
|
|
|
+ hint=(
|
|
|
+ "Rename field 'invalid_models_tests.Target.id', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.foreign_1'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('foreign_1'),
|
|
|
id='fields.E303',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.foreign_1' clashes with reverse accessor for 'Model.m2m_1'.",
|
|
|
- hint=("Add or change a related_name argument to "
|
|
|
- "the definition for 'Model.foreign_1' or 'Model.m2m_1'."),
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.foreign_1' "
|
|
|
+ "clashes with reverse accessor for "
|
|
|
+ "'invalid_models_tests.Model.m2m_1'.",
|
|
|
+ hint=(
|
|
|
+ "Add or change a related_name argument to the definition "
|
|
|
+ "for 'invalid_models_tests.Model.foreign_1' or "
|
|
|
+ "'invalid_models_tests.Model.m2m_1'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('foreign_1'),
|
|
|
id='fields.E304',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.foreign_1' clashes with reverse query name for 'Model.m2m_1'.",
|
|
|
- hint=("Add or change a related_name argument to "
|
|
|
- "the definition for 'Model.foreign_1' or 'Model.m2m_1'."),
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.foreign_1' "
|
|
|
+ "clashes with reverse query name for "
|
|
|
+ "'invalid_models_tests.Model.m2m_1'.",
|
|
|
+ hint=(
|
|
|
+ "Add or change a related_name argument to the definition "
|
|
|
+ "for 'invalid_models_tests.Model.foreign_1' or "
|
|
|
+ "'invalid_models_tests.Model.m2m_1'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('foreign_1'),
|
|
|
id='fields.E305',
|
|
|
),
|
|
|
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.foreign_2' clashes with reverse accessor for 'Model.m2m_2'.",
|
|
|
- hint=("Add or change a related_name argument "
|
|
|
- "to the definition for 'Model.foreign_2' or 'Model.m2m_2'."),
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.foreign_2' "
|
|
|
+ "clashes with reverse accessor for "
|
|
|
+ "'invalid_models_tests.Model.m2m_2'.",
|
|
|
+ hint=(
|
|
|
+ "Add or change a related_name argument to the definition "
|
|
|
+ "for 'invalid_models_tests.Model.foreign_2' or "
|
|
|
+ "'invalid_models_tests.Model.m2m_2'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('foreign_2'),
|
|
|
id='fields.E304',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.foreign_2' clashes with reverse query name for 'Model.m2m_2'.",
|
|
|
- hint=("Add or change a related_name argument to "
|
|
|
- "the definition for 'Model.foreign_2' or 'Model.m2m_2'."),
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.foreign_2' "
|
|
|
+ "clashes with reverse query name for "
|
|
|
+ "'invalid_models_tests.Model.m2m_2'.",
|
|
|
+ hint=(
|
|
|
+ "Add or change a related_name argument to the definition "
|
|
|
+ "for 'invalid_models_tests.Model.foreign_2' or "
|
|
|
+ "'invalid_models_tests.Model.m2m_2'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('foreign_2'),
|
|
|
id='fields.E305',
|
|
|
),
|
|
|
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.m2m_1' clashes with field name 'Target.id'.",
|
|
|
- hint=("Rename field 'Target.id', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.m2m_1'."),
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.m2m_1' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Target.id'.",
|
|
|
+ hint=(
|
|
|
+ "Rename field 'invalid_models_tests.Target.id', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.m2m_1'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('m2m_1'),
|
|
|
id='fields.E302',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.m2m_1' clashes with field name 'Target.id'.",
|
|
|
- hint=("Rename field 'Target.id', or add/change a related_name "
|
|
|
- "argument to the definition for field 'Model.m2m_1'."),
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.m2m_1' "
|
|
|
+ "clashes with field name 'invalid_models_tests.Target.id'.",
|
|
|
+ hint=(
|
|
|
+ "Rename field 'invalid_models_tests.Target.id', or "
|
|
|
+ "add/change a related_name argument to the definition for "
|
|
|
+ "field 'invalid_models_tests.Model.m2m_1'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('m2m_1'),
|
|
|
id='fields.E303',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.m2m_1' clashes with reverse accessor for 'Model.foreign_1'.",
|
|
|
- hint=("Add or change a related_name argument to the definition "
|
|
|
- "for 'Model.m2m_1' or 'Model.foreign_1'."),
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.m2m_1' "
|
|
|
+ "clashes with reverse accessor for "
|
|
|
+ "'invalid_models_tests.Model.foreign_1'.",
|
|
|
+ hint=(
|
|
|
+ "Add or change a related_name argument to the definition "
|
|
|
+ "for 'invalid_models_tests.Model.m2m_1' or "
|
|
|
+ "'invalid_models_tests.Model.foreign_1'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('m2m_1'),
|
|
|
id='fields.E304',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.m2m_1' clashes with reverse query name for 'Model.foreign_1'.",
|
|
|
- hint=("Add or change a related_name argument to "
|
|
|
- "the definition for 'Model.m2m_1' or 'Model.foreign_1'."),
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.m2m_1' "
|
|
|
+ "clashes with reverse query name for "
|
|
|
+ "'invalid_models_tests.Model.foreign_1'.",
|
|
|
+ hint=(
|
|
|
+ "Add or change a related_name argument to the definition "
|
|
|
+ "for 'invalid_models_tests.Model.m2m_1' or "
|
|
|
+ "'invalid_models_tests.Model.foreign_1'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('m2m_1'),
|
|
|
id='fields.E305',
|
|
|
),
|
|
|
-
|
|
|
Error(
|
|
|
- "Reverse accessor for 'Model.m2m_2' clashes with reverse accessor for 'Model.foreign_2'.",
|
|
|
- hint=("Add or change a related_name argument to the definition "
|
|
|
- "for 'Model.m2m_2' or 'Model.foreign_2'."),
|
|
|
+ "Reverse accessor for 'invalid_models_tests.Model.m2m_2' "
|
|
|
+ "clashes with reverse accessor for "
|
|
|
+ "'invalid_models_tests.Model.foreign_2'.",
|
|
|
+ hint=(
|
|
|
+ "Add or change a related_name argument to the definition "
|
|
|
+ "for 'invalid_models_tests.Model.m2m_2' or "
|
|
|
+ "'invalid_models_tests.Model.foreign_2'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('m2m_2'),
|
|
|
id='fields.E304',
|
|
|
),
|
|
|
Error(
|
|
|
- "Reverse query name for 'Model.m2m_2' clashes with reverse query name for 'Model.foreign_2'.",
|
|
|
- hint=("Add or change a related_name argument to the definition "
|
|
|
- "for 'Model.m2m_2' or 'Model.foreign_2'."),
|
|
|
+ "Reverse query name for 'invalid_models_tests.Model.m2m_2' "
|
|
|
+ "clashes with reverse query name for "
|
|
|
+ "'invalid_models_tests.Model.foreign_2'.",
|
|
|
+ hint=(
|
|
|
+ "Add or change a related_name argument to the definition "
|
|
|
+ "for 'invalid_models_tests.Model.m2m_2' or "
|
|
|
+ "'invalid_models_tests.Model.foreign_2'."
|
|
|
+ ),
|
|
|
obj=Model._meta.get_field('m2m_2'),
|
|
|
id='fields.E305',
|
|
|
),
|
|
@@ -1458,11 +1557,13 @@ class ComplexClashTests(SimpleTestCase):
|
|
|
]
|
|
|
self.assertEqual(Child.check(), [
|
|
|
Error(
|
|
|
- "Reverse %s for 'Child.%s' clashes with reverse %s for "
|
|
|
- "'Child.%s'." % (attr, field_name, attr, clash_name),
|
|
|
+ "Reverse %s for 'invalid_models_tests.Child.%s' clashes with "
|
|
|
+ "reverse %s for 'invalid_models_tests.Child.%s'."
|
|
|
+ % (attr, field_name, attr, clash_name),
|
|
|
hint=(
|
|
|
"Add or change a related_name argument to the definition "
|
|
|
- "for 'Child.%s' or 'Child.%s'." % (field_name, clash_name)
|
|
|
+ "for 'invalid_models_tests.Child.%s' or "
|
|
|
+ "'invalid_models_tests.Child.%s'." % (field_name, clash_name)
|
|
|
),
|
|
|
obj=Child._meta.get_field(field_name),
|
|
|
id=error_id,
|