Гонка определения модели 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 с другим? (между двумя одинаковыми классами)

Спасибо :)

Ответы на вопрос(2)

Ваш ответ на вопрос