我想從表單中獲取數據,表單根據列表被轉載多次。每個項目的一種形式。該表格由複選框和文本框組成。如果複選框被選中,那麼我也需要附帶的文本框數據。Django驗證錯誤u「''值必須是十進制數。」
視圖:
for item in request.POST.getlist('item_list'):
item_id = int(item)
item = Item.objects.get(id=item_id)
item_name = item.name
print item_name
list = List(name = item_name, created_on = now, edited_on = now)
for price in request.POST.getlist('price'):
print price
list_item.price = price
list_item.save()
#item.delete()
它不是以上但now = timezone.now()
所示。
模板:
<form action="" method="post">
{% csrf_token %}
{% for item in item_list %}
<input type="checkbox" name="item" value="{{item.id}}">{{item.name}} <input type="text" name="price"><br>
{% endfor %}
<input type="submit" value="Add Items">
</form>
這會返回一個validationerror [u"'' value must be a decimal number."]
。我無法弄清楚爲什麼它會說我輸入的數字不是小數。謝謝你的幫助。
更新:
當我把print request.POST.getlist('price')
輸出爲[u'2.55', u'4.32', u'23.421', u'3.00', u'', u'']
嘗試用'list_item.price = Decimal(price)'替換'list_item.price = price'。 – alecxe
我試過,但後來我得到一個'全球名稱'十進制'沒有定義' – apardes
不要忘記一個導入語句:'從十進制導入十進制' – alecxe