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.
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 comonews
.