python sqlalchemy circular-dependency

python - Dependencia circular SQLAlchemy: ¿cómo resolverlo?



circular-dependency (1)

use_alter - pasa a la ForeignKeyConstraint subyacente para indicar que la restricción debe ser generada / eliminada externamente desde la instrucción CREATE TABLE / DROP TABLE. Vea el constructor de las clases para más detalles.

http://docs.sqlalchemy.org/en/rel_0_8/core/schema.html?highlight=use_alter#foreign-key-api-constructs

Tengo dos tablas, News y Files :

# unrelated columns removed class News(db.Model): id = db.Column(db.Integer, primary_key=True) file_id_logo = db.Column(db.Integer, db.ForeignKey(''files.id'')) logo = db.relationship(''File'', lazy=False) class File(db.Model): id = db.Column(db.Integer, primary_key=True) news_id = db.Column(db.Integer, db.ForeignKey(''news.id'')) news = db.relationship(''News'', lazy=False, backref=db.backref(''files''))

Después de agregar el file_id_logo fkey, SQLalchemy generó un CircularDependencyError. Ya lo intenté post_update=True en la relación del logo , pero no cambió nada.

¿Cuál es la forma correcta de resolver esto?

Los siguientes casos son posibles (en caso de que importe):

  • Un archivo no tiene ni exactamente una noticia asignada.
  • Si un archivo no tiene noticias, tampoco hay noticias con este archivo al que se hace referencia como su logotipo.
  • Puede haber varios archivos para una sola noticia, pero solo uno de estos archivos puede ser su logo .
  • Entonces, si una noticia tiene un logo , el archivo al que se hace referencia también tiene esta noticia como news .