Будет около 20 продуктов, и мне нужно, чтобы все выбранные «продукты» для каждой конкретной задачи были сохранены вместе с каждой «задачей», а затем их нужно заполнить при редактировании задачи. В настоящее время отображается только первый выбранный элемент, а не остальные.
@app.route('/')
@app.route('/home')
def home():
return render_template('home.html')
@app.route('/todo')
def todo():
return render_template('todo.html',
tasks=mongo.db.tasks.find(), categories=mongo.db.categories.find(), days=mongo.db.days.find(), products=mongo.db.products.find())
@app.route('/addtodo')
def addtodo():
return render_template('addtodo.html',
tasks=mongo.db.tasks.find(), categories=mongo.db.categories.find(), days=mongo.db.days.find(), products=mongo.db.products.find())
@app.route('/updatetodo', methods=['POST'])
def updatetodo():
tasks = mongo.db.tasks
tasks.insert_one(request.form.to_dict())
return redirect(url_for('todo'))
@app.route('/edittodo/<task_id>')
def edittodo(task_id):
the_task = mongo.db.tasks.find_one({"_id": ObjectId(task_id)})
all_categories = mongo.db.categories.find()
all_days = mongo.db.days.find()
all_products = mongo.db.products.find()
return render_template('edittodo.html',
task=the_task, categories=all_categories, days=all_days, products=all_products)
@app.route('/update_task/<task_id>', methods=["POST"])
def update_task(task_id):
tasks = mongo.db.tasks
tasks.update({'_id': ObjectId(task_id)},
{
'day_id': request.form.get('day_id'),
'task_name': request.form.get('task_name'),
'category_name': request.form.get('category_name'),
'task_description': request.form.get('task_description'),
'product_name': request.form.get('product_name'),
'how_to': request.form.get('how_to'),
})
return redirect(url_for('todo'))
HTML для раздела, над которым я работаю
<form action="{{url_for('update_task', task_id=task._id)}}" method="POST" class="col s12">
<div class="row">
<div class="input-field col s12">
<i class="material-icons prefix">shopping_basket</i>
<select multiple id="product__name" name="product_name">
<option value="" disabled>Choose Products</option>
{% for prod in products %}
{% if prod.product_name == task.product_name %}
<option value="{{prod.product_name}}" selected>{{prod.product_name}}</option>
{% else %}
<option value="{{prod.product_name}}">{{prod.product_name}}</option>
{% endif %}
{% endfor %}
</select>
<label>Products</label>
</div>
</div>