2015-04-09 3 views
0

У меня есть форма, которая имеет 2 входа, но с тем же именем banana. Однако каждая строка имеет другое значение для fruit.number.Форма POST HTML с теми же полями

Django шаблон

{% for fruit in response %} 
      <tr> 
       <td>{{ fruit.number }}</td> 
       <td> 
        <select name="banana" class="update_input"> 
         <option selected="selected">yes</option> 
         <option value="false">no</option> 
        </select> 
       </td> 

     {% endfor %} 
<input type="submit" value="Submit" class="btn" style="color:black;"> 
</form> 

Когда я POST я отправляю значение банан дважды. Но мне нужно дифференцировать эти значения на основе fruit.number.

Какие у меня варианты. Из того, что я вижу основной вариант есть, чтобы добавить номер фруктов на имя выбора т.е.

<select name="1_banana" class="update_input"> 
     <option value="true" selected="selected">yes</option> 
     <option value="false">no</option> 
</select> 

ли в любом случае иметь вложенную POST как {1 : {"banana":"false"}}?

Надеется, что это все имеет смысл:)

Спасибо,

+0

вы можете написать дважды '<выберите имя =«банан []»>', чтобы вы могли получить массив, например, 'banana => [" false "," true "]' – fcalderan

ответ

0

Вы единственный вариант идентификатор, чтобы добавить {{ fruit.number }} к вашему выберите имя:

{% for fruit in response %} 
    <tr> 
    <td>{{ fruit.number }}</td> 
    <td> 
     <select name="banana_{{ fruit.number }}" class="update_input"> 
     <option value="true" selected="selected">yes</option> 
     <option value="false">no</option> 
     </select> 
    </td> 
    </tr> 
{% endfor %} 

/* 
POST: 
[ 
    'banana_1': 'true', 
    'banana_2': 'false' 
] 
*/ 

Примечания:

  • Дона» t забудьте добавить атрибут value по вашей опции «да»
  • есть недостающий </tr> (только уведомление, может быть опечатка)

Там есть вариант, который позволяет иметь несколько значений для одного и того же имени:

<select name="banana[]" class="update_input"> 

К сожалению, вы не будете иметь возможность различать оба значения фрукты, если не различать их в коде:

{% for fruit in response %} 
    <tr> 
    <td>{{ fruit.number }}</td> 
    <td> 
     <select name="banana[]" class="update_input"> 
     <option value="{{ fruit.number }}_true" selected="selected">yes</option> 
     <option value="{{ fruit.number }}_false">no</option> 
     </select> 
    </td> 
    </tr> 
{% endfor %} 

/* 
POST: 
[ 
    'banana': [ '1_true, '2_false' ] 
] 
*/