【发布时间】:2016-02-21 18:27:00
【问题描述】:
我正在尝试使用内联表单集来创建公司的开放和关闭时间,即周一到周五,每天都有不同的开放和关闭时间。
公司简介表格是常规的模型表格。 我在下面加载的公司时间是一个模型表单集,其 id 从公司简介表单传递。
模型表单和模型表单集可以很好地创建。 模型表单在编辑时加载预选值,而不是模型表单集。 我不知道我是否在创建时保存任何内容,因为当我尝试编辑实例时得到一个空的模型表单集。
我应该在此处更改什么以确保模型表单集保存选定的选项或在编辑时加载预选的选项?
def addprofile(request):
current_user = request.user
company = Company() ##To create new instance
#company = Company.objects.get(id= request.session['my_ids']) ## To get old instance
OpeningHourslineFormSet = inlineformset_factory(Company, OpeningHours, form=OpeningHoursForm, extra=7 )##fields=("weekday", "fromHour","fromMinute", "toHour", "toMinute")
if request.session['entry_count'] > 1:
messages.success( request, 'You can only create two business profiles now' )
return HttpResponseRedirect( reverse('home') )
else:
if request.method == 'POST':
hourformset = OpeningHourslineFormSet(request.POST, request.FILES, instance=company)
form = CompanyForm(request.POST)
###### deal with hourformset here
if form.is_valid():
model_instance = form.save(commit=False)
model_instance.pub_date= timezone.now()
model_instance.user= current_user.id
model_instance.save()
else:
print("companyform not saved")
###################
if hourformset.is_valid():
hourformset.save(commit=False)
for product in hourformset:
if product.is_valid():
product.save(commit=False)
product.company = model_instance.id
product.save()
instances = hourformset.save()
else:
print(" modelform not saved")
return HttpResponseRedirect('/bizprofile/success')
else:
hourformset = OpeningHourslineFormSet(instance=company)
form = CompanyForm()
context = {'hourformset': hourformset, 'form': form}
return render_to_response('bizprofile/addprofile.html', context, context_instance=RequestContext(request))
【问题讨论】: