| | 113 | |
|---|
| | 114 | class MissingManualM2MModel(models.Model): |
|---|
| | 115 | name = models.CharField(max_length=5) |
|---|
| | 116 | missing_m2m = models.ManyToManyField(Model, through="MissingM2MModel") |
|---|
| | 117 | |
|---|
| | 118 | class Person(models.Model): |
|---|
| | 119 | name = models.CharField(max_length=5) |
|---|
| | 120 | |
|---|
| | 121 | class Group(models.Model): |
|---|
| | 122 | name = models.CharField(max_length=5) |
|---|
| | 123 | primary = models.ManyToManyField(Person, through="Membership", related_name="primary") |
|---|
| | 124 | secondary = models.ManyToManyField(Person, through="Membership", related_name="secondary") |
|---|
| | 125 | tertiary = models.ManyToManyField(Person, through="RelationshipDoubleFK", related_name="tertiary") |
|---|
| | 126 | |
|---|
| | 127 | class GroupTwo(models.Model): |
|---|
| | 128 | name = models.CharField(max_length=5) |
|---|
| | 129 | primary = models.ManyToManyField(Person, through="Membership") |
|---|
| | 130 | secondary = models.ManyToManyField(Group, through="MembershipMissingFK") |
|---|
| | 131 | |
|---|
| | 132 | class Membership(models.Model): |
|---|
| | 133 | person = models.ForeignKey(Person) |
|---|
| | 134 | group = models.ForeignKey(Group) |
|---|
| | 135 | not_default_or_null = models.CharField(max_length=5) |
|---|
| | 136 | |
|---|
| | 137 | class MembershipMissingFK(models.Model): |
|---|
| | 138 | person = models.ForeignKey(Person) |
|---|
| | 139 | |
|---|
| | 140 | class PersonSelfRefM2M(models.Model): |
|---|
| | 141 | name = models.CharField(max_length=5) |
|---|
| | 142 | friends = models.ManyToManyField('self', through="Relationship") |
|---|
| | 143 | too_many_friends = models.ManyToManyField('self', through="RelationshipTripleFK") |
|---|
| | 144 | |
|---|
| | 145 | class PersonSelfRefM2MExplicit(models.Model): |
|---|
| | 146 | name = models.CharField(max_length=5) |
|---|
| | 147 | friends = models.ManyToManyField('self', through="ExplicitRelationship", symmetrical=True) |
|---|
| | 148 | |
|---|
| | 149 | class Relationship(models.Model): |
|---|
| | 150 | first = models.ForeignKey(PersonSelfRefM2M, related_name="rel_from_set") |
|---|
| | 151 | second = models.ForeignKey(PersonSelfRefM2M, related_name="rel_to_set") |
|---|
| | 152 | date_added = models.DateTimeField() |
|---|
| | 153 | |
|---|
| | 154 | class ExplicitRelationship(models.Model): |
|---|
| | 155 | first = models.ForeignKey(PersonSelfRefM2MExplicit, related_name="rel_from_set") |
|---|
| | 156 | second = models.ForeignKey(PersonSelfRefM2MExplicit, related_name="rel_to_set") |
|---|
| | 157 | date_added = models.DateTimeField() |
|---|
| | 158 | |
|---|
| | 159 | class RelationshipTripleFK(models.Model): |
|---|
| | 160 | first = models.ForeignKey(PersonSelfRefM2M, related_name="rel_from_set_2") |
|---|
| | 161 | second = models.ForeignKey(PersonSelfRefM2M, related_name="rel_to_set_2") |
|---|
| | 162 | third = models.ForeignKey(PersonSelfRefM2M, related_name="too_many_by_far") |
|---|
| | 163 | date_added = models.DateTimeField() |
|---|
| | 164 | |
|---|
| | 165 | class RelationshipDoubleFK(models.Model): |
|---|
| | 166 | first = models.ForeignKey(Person, related_name="first_related_name") |
|---|
| | 167 | second = models.ForeignKey(Person, related_name="second_related_name") |
|---|
| | 168 | third = models.ForeignKey(Group, related_name="rel_to_set") |
|---|
| | 169 | date_added = models.DateTimeField() |
|---|
| | 255 | invalid_models.grouptwo: 'primary' has a manually-defined m2m relation through model Membership, which does not have foreign keys to Person and GroupTwo |
|---|
| | 256 | invalid_models.grouptwo: 'secondary' has a manually-defined m2m relation through model MembershipMissingFK, which does not have foreign keys to Group and GroupTwo |
|---|
| | 257 | invalid_models.missingmanualm2mmodel: 'missing_m2m' specifies an m2m relation through model MissingM2MModel, which has not been installed |
|---|
| | 258 | invalid_models.group: The model Group has two manually-defined m2m relations through the model Membership, which is not permitted. Please consider using an extra field on your intermediary model instead. |
|---|
| | 259 | invalid_models.group: Intermediary model RelationshipDoubleFK has more than one foreign key to Person, which is ambiguous and is not permitted. |
|---|
| | 260 | invalid_models.personselfrefm2m: Many-to-many fields with intermediate tables cannot be symmetrical. |
|---|
| | 261 | invalid_models.personselfrefm2m: Intermediary model RelationshipTripleFK has more than two foreign keys to PersonSelfRefM2M, which is ambiguous and is not permitted. |
|---|
| | 262 | invalid_models.personselfrefm2mexplicit: Many-to-many fields with intermediate tables cannot be symmetrical. |
|---|