Первое: циклические отношения в вашей схеме базы данных означают плохой дизайн вашей схемы.
Обратная ссылка действительно создается ORM, но она создается на лету (при чтении), а не при записи.
В противном случае было бы невозможно загрузить приборы для автоматизированных испытаний ...
Это отношение один к одному? Если это так, вы можете использовать OneToOneField:
Class Geoname
id = IntegerField(primary_key=True)
admin_1 = OneToOneField('Admin1')
Class Admin1
country = models.ForeignKey(Country, db_index=True)
Я надеюсь, что эти классы наследуются от django.db.models.Model
в вашем реальном коде!
Если это не взаимно-однозначное отношение, вы можете сделать это:
Class Geoname
id = IntegerField(primary_key=True)
Class Admin1
country = models.ForeignKey(Country, db_index=True)
geoname = models.ForeignKey(Geoname, db_index=True)
и у вас есть доступ ко всем Admin1
объектам, которые ссылаются на определенный Geoname
по
g = Geoname.objects.get(id=1)
g.admin1_set.all() # Returns all Admin1 objects related to Geoname
О таких запросах можно прочитать в документации .