Прямое объявление класса в Python - PullRequest
5 голосов
/ 15 марта 2011

У меня есть два класса в порядке:

class A(models):
    ...

class B(models):
    a = models.ManyToManyField(A)

Теперь мне нужно сменить модель на следующую:

class A(models):
    b = models.ManyToManyField(B)

class B(models):
    ...

Я должен использовать южные миграции. Я хотел создать новое поле многие ко многим в классе A, перенести данные и удалить поле из класса B. Проблема заключается в том, что оба они находятся в одной модели. Поэтому, когда я помещаю многих в класс А, этого не видно. Потому что B декларация ниже A. Как решить эту проблему?

1 Ответ

9 голосов
/ 15 марта 2011

По крайней мере, SQLAlchemy позволяет использовать строку вместо класса.Попробуйте, если django-orm это тоже разрешает.

a = models.ManyToManyField('A')
# ...
b = models.ManyToManyField('B')

Обновление: в соответствии с Ссылка на модель циркуляра Django / Python это именно тот путь, по которому нужно идти.

...