Гонка определения модели Django
Как вы справляетесь со случаем, когда у вас есть модель (A), которая опирается на определяемую модель (B), но модель (B) также опирается на определяемую модель (A).
Например, у меня есть
class event(models.Model):
competition_start = models.DateField()
competitors = models.ManyToManyField(picture)
results = models.CommaSeparatedIntegerField(max_length=20)
class picture(models.Model):
uploader = models.OneToOneField(UserProfile)
upload_date = models.DateField()
image = models.ImageField(upload_to="media")
score = models.DecimalField(max_digits=10,decimal_places=10)
score_RD = models.DecimalField(max_digits=10,decimal_places=10)
rated = models.BooleanField()
last_competed = models.DateField()
competition = models.OneToOneField(event)
Поле конкурентов зависит от определения изображения, но изображение зависит от определения события.
Обратите внимание, что каждое изображение (A) совместно использует однозначное отношение с событием, но событие может включать несколько других изображений (набор (S) -A).
Я пытался поменять местами
competitors = models.ManyToManyField(picture)
user_pic = models.OneToOneField(picture)
внутри события и избавиться от поля "соревнование', но я считаю, что SQL не позволяет этого. Может кто-нибудь объяснить, почему?
Какое исправление я должен выполнить, если мне нужно отношение OneToOne для одного поля и отношение ManyToMany с другим? (между двумя одинаковыми классами)
Спасибо :)