2016-10-11 4 views
0

У меня есть Flask-WTF поля формы для цикла. Я хочу публиковать новые количества для каждого элемента.проводка Кол-во в форму и сохранение данных

Я читаю о списке полей. Я все еще не понимаю, но я думаю, что они могут быть ответом.

@app.route('/checkout') 
def checkout(): 
    form = CartForm() 
    for item in current_user.cart: 
     product = Product.query.get(item.product_id) 
     cart_items.append({product: item.quantity}) 

    return render_template('checkout.html',cart_items=cart_items,form=form) 



{% for item in cart_items %} 
    {% for product, quantity in item.items() %} 
     {{product.name}} 
     {{product.price}} 
     {{form.quantity }} 
    {% endfor %} 
{% endfor %} 

задачи1: Когда цикл над каждым Каждый Колба-WTF поле формы имеет такое же имя.

Выход

<select id="quantity" name="quantity"><option value="1">1</option></select> 
<select id="quantity" name="quantity"><option value="1">1</option></select> 

задачи2: как сохранить в поддержке, если каждая форма имеет другое имя.

+0

Попробуйте мое решение :) –

ответ

1

У меня такая же проблема точно! Но я решаю это без Flask-WTF, решение ниже было основано на моем приложении. У меня есть страница редактирования альбома, мне нужно закодировать текстовый ввод для каждого изображения в альбоме, а затем сохранить текст для каждого изображения.

I цикл вход в HTML, обратите внимание, я устанавливаю значение действия для другой функции вида и использования идентификатора каждой фотографии в качестве имени каждого входного текстового в:

<form action="{{ url_for('edit_photo', id=album.id) }}" method="POST"> 
<ul> 
    {% for photo in photos %} 
    <li> 
     <img class="img-responsive portrait" src="{{ photo.path }}" alt="Some description"/> 
     <textarea name="{{ photo.id }}" placeholder="add some description" rows="3">{% if photo.description %}{{ photo.description }}{% endif %}</textarea> 
    </li> 
    {% endfor %} 
</ul> 
<hr> 
<input class="btn btn-success" type="submit" name="submit" value="submit"> 

Тогда я петля на картинке и сохранить введенные данные (получить его значение на это идентификатор):

@app.route('/edit-photo/<int:id>', methods=['GET', 'POST']) 
@login_required 
def edit_photo(id): 
    album = Album.query.get_or_404(id) 
    photos = album.photos.order_by(Photo.order.asc()) 
    if request.method == 'POST': 
     for photo in photos: 
      photo.about = request.form[str(photo.id)] 
      db.session.add(photo) 
     return redirect(url_for('.album', id=id)) 
    return render_template('edit_photo.html', album=album, photos=photos) 
+0

его не то, что я хотел, потому что я хотел дать им уникальные имена, поэтому я могу добавить что-то с помощью javascript для этого было полезно thankyou очень много –

+0

Извещение Я использую 'photo.id' для значения имени:' name = "{{photo.id }} "', поэтому каждый вход будет иметь уникальное имя. –

+0

Да, я очень благодарен :) –