我有一个restaurant_form,允许用户输入菜单项。每个菜单项代表一个动态添加的表行。每个表行都有以下输入:菜单项,价格,清真(布尔)和注释。
这是一个示例条目。 data-id和输入元素的名称递增。</ p>
<tbody class="menu-entry ">
<tr id='menu0' data-id="0" class="hidden">
<td data-name="name" class="name">
<input type="text" name='name0' placeholder='Menu Item' class="form-control"/>
</td>
<td data-name="price">
<input type="text" name='price0' placeholder='0.00' class="form-control"/>
</td>
<td data-name="halal">
<input type="checkbox" name="veg0" value="halal" class="form-control">
</td>
<td data-name="notes">
<textarea name="notes0" placeholder="Contains soy." class="form-control"></textarea>
</td>
<td data-name="del">
<button name="del0" class='btn btn-danger glyphicon glyphicon-remove row-remove'></button>
</td>
</tr>
</tbody>
从表中检索数据的最佳方法是什么?我试过这个:
$('#restaurant_form').submit(function () {
$('.menu-entry').each(function()
{
$(this).find('td').each(function(){
$(this).find("input").each(function() {
alert(this.value)
});
$(this).find("textarea").each(function() {
alert(this.value)
});
})
})
})
alert()显示正确的值,但我想知道是否有更好的方法可以做到这一点?
修改我使用以下内容对其进行了简化:
$('.menu-entry .form-control').each()
此外,在检索值后,如何通过POST请求将其传递给视图?我想将值保存到模型中 RestaurantMenu有列名,价格,清真和笔记。
谢谢。
答案 0 :(得分:0)
这就是我的所作所为:
对于每个菜单条目,我将值转换为以逗号分隔的字符串,并添加了一个隐藏的输入来保存值。我将类'menu-row'添加到tr。
menu_entries = request.POST.getlist('menu_entries')
for menu_entry in menu_entries:
entry = menu_entry.split(",")
if entry[1]:
price = round(float(entry[1]), 2)
else:
price = 0.00
if not entry[2]:
entry[2] = False
MenuItems.objects.create(name=entry[0], price=price, halal=entry[2], notes=entry[3], restaurant_id=r.id)
在views.py中:
a = [3,2,5,7,4,5,6,3,8,4,5,7,8,9,5,7,8,4,9,7,6]
from itertools import groupby
[list(g) for k, g in groupby(a, lambda x:x<7) if k]
如果有人知道更好的方法,我很想知道。谢谢!