|
142 | 142 |
|
143 | 143 | class Other(models.Model):
|
144 | 144 | field = models.ForeignKey(MyModel, related_name="others", on_delete=models.CASCADE)
|
| 145 | +
|
| 146 | +
|
| 147 | +- case: test_related_fields_with_two_generic_parameters |
| 148 | + main: | |
| 149 | + from myapp.models import Address, School, Student |
| 150 | + reveal_type(Student().school) # N: Revealed type is "myapp.models.School" |
| 151 | + reveal_type(Student().address) # N: Revealed type is "myapp.models.Address" |
| 152 | + s = Student() |
| 153 | + s.school = School() |
| 154 | + s.address = Address() |
| 155 | + installed_apps: |
| 156 | + - myapp |
| 157 | + files: |
| 158 | + - path: myapp/__init__.py |
| 159 | + - path: myapp/models.py |
| 160 | + content: | |
| 161 | + from django.db import models |
| 162 | +
|
| 163 | + class School(models.Model): |
| 164 | + pass |
| 165 | +
|
| 166 | + class Address(models.Model): |
| 167 | + pass |
| 168 | +
|
| 169 | + class Student(models.Model): |
| 170 | + school = models.ForeignKey["School","School"](to="School", on_delete=models.CASCADE) |
| 171 | + address = models.OneToOneField["Address","Address"](to="Address", on_delete=models.CASCADE) |
| 172 | +
|
| 173 | +
|
| 174 | +- case: test_related_fields_with_one_generic_parameter |
| 175 | + expect_fail: True |
| 176 | + main: | |
| 177 | + from myapp.models import Address, School, Student |
| 178 | + reveal_type(Student().school) # N: Revealed type is "myapp.models.School" |
| 179 | + reveal_type(Student().address) # N: Revealed type is "myapp.models.Address" |
| 180 | + s = Student() |
| 181 | + s.school = School() |
| 182 | + s.address = Address() |
| 183 | + installed_apps: |
| 184 | + - myapp |
| 185 | + files: |
| 186 | + - path: myapp/__init__.py |
| 187 | + - path: myapp/models.py |
| 188 | + content: | |
| 189 | + from django.db import models |
| 190 | +
|
| 191 | + class School(models.Model): |
| 192 | + pass |
| 193 | +
|
| 194 | + class Address(models.Model): |
| 195 | + pass |
| 196 | +
|
| 197 | + class Student(models.Model): |
| 198 | + school = models.ForeignKey["School"](to="School", on_delete=models.CASCADE) |
| 199 | + address = models.OneToOneField["Address"](to="Address", on_delete=models.CASCADE) |
0 commit comments