有人请告诉我哪里出错了。我要做的是让用户输入他们想要的产品数量,并在提交时,如果该数量大于0,则显示等于数量的表格。有多个产品,所以我使用if语句来说明帖子有这个产品名称的位置,显示这个表单。我得到的结果只是最后一个产品的表格。所以在[鸡蛋,火腿]列表中,我只得到一份火腿形式。请尽可能帮助,这是我的代码。
查看:
if request.method =='POST':
session = request.session._session_key
formtype = request.POST.getlist('name')
i = 0
while i < len(formtype):
for f in formtype:
if f == 'eggs':
item = CompReg.objects.get(sessionid = session, name='eggs')
extra = item.quantity
listmemformset = modelformset_factory(ProBachata, form=ProBachataF,extra=extra)
formset = listmemformset()
elif f == 'ham':
item = CompReg.objects.get(sessionid = session, name='ham')
extra = item.quantity
listmemformset = modelformset_factory(ProBachata, form=ProBachataF,extra=extra)
formset = listmemformset()
i += 1
else:
extra = 0
模板:
{{formset.as_p}}
答案 0 :(得分:0)
实际上我并没有完全理解你的代码(为什么要使用,为什么你从db获得item.quantity,数量musn是否在POST数据?),但你的代码可能是这样的; < / p>
if request.method =='POST':
session = request.session._session_key
formtype = request.POST.getlist('name')
formsets = []
for f in formtype:
if f == 'eggs':
item = CompReg.objects.get(sessionid=session, name='eggs')
elif f == 'ham':
item = CompReg.objects.get(sessionid=session, name='ham')
extra = item.quantity
listmemformset = modelformset_factory(ProBachata, form=ProBachataF, extra=extra)
formset = {'name': f, 'form':listmemformset()}
formsets.append(formset)
else:
extra = 0
模板:
{% for formset in formsets %}
name: {{formset.name}}
{{formset.form.as_p}}
{% endfor %}