Я делаю простой проект с использованием Python, Pymongo и Flask.У меня есть коллекция рецептов в MongoDB.У меня есть код, чтобы я мог просматривать эти рецепты по отдельности и нажимать кнопку, которая сохранит рецепт в моей коллекции сохраненных_рецептов.Если я просматриваю тот же рецепт и снова сохраняю его, я, очевидно, получаю «Ошибка дублирующегося ключа E11000», поскольку _id (ObjectId) уже существует в коллекции (см. Изображение ниже).
Мне бы хотелось, чтобы на том же экране было всплывающее окно с сообщением о том, что пользователь уже добавил этот рецепт в свою папку «Сохраненные рецепты», или просто перенаправьте его, предоставив шаблон, объясняющий, что у него уже естьэтот рецепт, что-то на этот счет.
Возможно ли это?
Я думаю о чем-то вроде:
if ObjectId == ObjectId
return render_template('error.html')
Вот мой код, чтобы помочь объяснить:
recipe_id = recipes.find_one({"_id": ObjectId(recipe_id)})
savedrecipe.insert_one(recipe_id)
if 'username' in session:
return redirect(url_for('saved_recipes'))
return redirect(url_for('login'))
Итак, я нахожу определенный _id в коллекции в моей базе данных.Затем я вставляю этот найденный идентификатор в другую коллекцию.Если я пытаюсь добавить один и тот же идентификатор в ту же коллекцию, я получаю «дублирующую ошибку».Есть ли способ найти идентификатор, как у меня выше, затем вставить его в нужную коллекцию, но создать для него новый идентификатор?