Может ли кто-нибудь помочь мне понять, как отобразить несколько выбранных элементов в проекте python flask, над которым я работаю? - PullRequest
0 голосов
/ 26 февраля 2020

Будет около 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...