• Как настроить many to many на flask?

    ademaro
    @ademaro
    full-stack developer
    Вы создаёте каждый раз новый тег, даже если если с таким названием существует
    tags = Tag(name = i)

    Соответственно он и привязывается к изображению.

    1) Сделайте уникальное поле на имя тега (что бы они не плодились):
    class Tag(db.Model):
        id = db.Column(db.Integer(), primary_key=True)
        name = db.Column(db.String(5000), unique=True, nullable=True)


    2) При добавлении тегов к изображению ищите сначала существующий:
    ...
    tag = Tag.query.filter_by(name=i).first()  # у вас tags почему-то, хотя это один тег
    if not tag:  # если в БД нет тега, то создаём
      tag = Tag(name=i)  # создаём новый тег, если его не нашлось в БД
    save_db.tags.append(tag)  # добавляем тег к изображению существующий или только что созданный
    ...


    3) рекомендую отрефакторить имена переменных, сами себя запутываете)
    Ответ написан
    2 комментария