Dzień dobry.
Mam dwa modele, dajmy na to:
class Model1(models.Model):
model2 = models.ForeignKey(Model2, on_delete=models.CASCADE, null=True)
...
class Model2(models.Model):
model1 = models.ForeignKey(Model1, on_delete=models.CASCADE, null=True)
...
Dostaję błąd NameError: name 'Model2' is not defined
, jako, użycie Model2
jest przed jego definicją.
W C++ jest na to myk, że można zadeklarować informacyjnie klasę, a potem, wtórnie ją zdefiniować, jeżeli zachodzi sytuacja jak powyżej. Czy z Pythonie też tak da się zrobić?
Dzięki
M.
==============
EDIT
Obszedłem to, pisząc:
class Model1(models.Model):
model2 = models.ForeignKey('Model2', on_delete=models.CASCADE, null=True, related_name='m1_model2')
...
class Model2(models.Model):
model1 = models.ForeignKey(Model1, on_delete=models.CASCADE, null=True, related_name='m2_model1')
...
Jednak czy to dobre rozwiązanie tego problemu?