我需要帮助解决可能是一个简单的问题。我正在写一个表单来为某个单元添加一个部分。该单位将X部分绑定,并使用索引(索引?)进行排序。
当我尝试将unit_id传递给该部分时出现问题。由于用户需要通过单位屏幕添加一个部分,我希望它自动分配,它也会在URL中。
在提交用户输入的值后,我在将问题添加到模型中时遇到了问题。
def section_modify(request, unit_id, section_id=None):
unit = get_object_or_404(Models.Unit, id=int(unit_id))
if section_id is not None:
section = get_object_or_404(Models.Section, id=int(section_id))
else:
section = None
if request.method == "POST":
form = F.SectionForm(request.POST, instance=section)
if form.is_valid():
# I tried this part, but it didn't work:
# form.save(commit=False)
# form.unit_id = unit_id
form.save()
return HttpResponseRedirect('')
else:
form = F.SectionForm(instance=section)
return render(request, 'sectionEdit.html', {'form': form})
我正在寻找最简单的方法来做到这一点,django方式。
非常感谢任何帮助。谢谢你的时间。
答案 0 :(得分:1)
尝试像这样添加unit_id:
if form.is_valid():
# section will get unsaved model instance
# so you can assign property value and then save
section = form.save(commit=False)
section.unit_id = unit_id
section.save()
*更新*
def section_modify(request, unit_id, section_id=None):
unit = get_object_or_404(Models.Unit, id=int(unit_id))
if section_id is not None:
section = get_object_or_404(Models.Section, id=int(section_id))
if section:
section.unit_id=unit.pk
section.save()
else:
section = None
if request.method == "POST":
form = F.SectionForm(request.POST, instance=section)
if form.is_valid():
if section:
form.save()
else:
section = form.save(commit=False)
section.unit_id=unit.pk
section.save()
return HttpResponseRedirect('')
else:
form = F.SectionForm(instance=section)
return render(request, 'sectionEdit.html', {'form': form})
因此,如果我们将section实例附加到unit_id,则在表单提交后附加unit'id。