У меня есть циклическая зависимость между двумя моделями, userprofile
и image
:Пользовательские изображения Django - как обойти эту круговую зависимость?
профиля пользователя имеет ForeignKey к изображению пользователя
Изображения имеет ForeignKey в профиль пользователя, чтобы указать владелец этого образа
Это ошибка показано при запуске makemigrations
:
File "/usr/local/lib64/python3.4/site-packages/django/db/migrations/graph.py", line 241, in ensure_not_cyclic
raise CircularDependencyError(", ".join("%s.%s" % n for n in cycle))
django.db.migrations.exceptions.CircularDependencyError: profiles.0001_initial, media.0001_initial
Что такое чистый способ обойти это? (Я бы предпочел сохранить изображения, связанные с профилем пользователя, а не с пользователем auth, чтобы владение профилем пользователя и всем носителем было легко перенесено, если это когда-либо было необходимо)
Вот код (Lessor
- это профиль пользователя):
profiles.models
class Lessor(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, models.CASCADE)
logo = models.ForeignKey('media.Image', related_name='logo_set', null=True)
portrait = models.ForeignKey('media.Image', related_name='portrait_set', null=True)
media.models
class Image(models.Model):
author = models.ForeignKey('profiles.Lessor')
Самый чистый способ заключается в том, что только ваше поле изображения имеет модель ForeignKey для модели Арендодателя, а не обе они имеют FK друг к другу. – qasimalbaqali
О, тогда я, возможно, пойду за неправильной причиной ошибки, пожалуйста, взгляните, я обновил OP. Я думал, что это проблема, но это может быть что-то другое. – dtgq
Является ли владельцем изображения другого человека с лица, изображение которого является портретом? –