У меня есть отношение ко многим, и я использую flask административную библиотеку.
draw_subscription = db.Table(
"DrawSubscription",
db.Column("draw_id", db.Integer, db.ForeignKey("draw.id"), primary_key=True),
db.Column(
"participant_id", db.Integer, db.ForeignKey("participant.id"), primary_key=True
),
)
class Draw(db.Model):
"""..."""
__tablename__ = "draw"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
description = db.Column(db.Text, nullable=True)
in_processe = db.Column(db.Boolean, nullable=True, default=False)
responsible_number = db.Column(db.String(120), unique=True, nullable=False)
participants = db.relationship(
"Participant", secondary=draw_subscription, backref="draws",
)
created_at = db.Column(
db.DateTime, default=db.func.current_timestamp(), nullable=False
)
class Participant(db.Model):
"""Participant"""
__tablename__ = "participant"
id = db.Column(db.Integer, primary_key=True, autoincrement=True)
name = db.Column(db.String(120), unique=False, nullable=False)
number = db.Column(db.String(120), unique=True, nullable=False)
В моем коде администратора у меня есть:
class DrawModelView(ModelView):
inline_models = (Participant,)
form_excluded_columns = ("created_at", "in_process")
column_searchable_list = (Draw.responsible_number,)
admin.add_view(DrawModelView(Draw, db.session))
My Проблема в том, что если участник существует в моей базе данных, я хочу выбрать его. Если он не существует, я хочу создать. Используя inline_models, я могу только создавать, без inline_models я только могу выбирать.
Есть ли способ выбрать существующую запись или создать новую?