[英]editing inlineformset_factory with multiple instance
我有一個Extra = 24的嵌入式表單集,這是一天中的時間。 添加新條目並保存沒有任何問題
OreSommInlineFormSet = inlineformset_factory(FarmacoGiornaliero, OreSomministrazione,
form=OreForm, fields=('ore','farmaco', 'quantita'),
extra=24, can_delete=False)
myospite = Ospite.objects.filter(cognome=cognome).filter(nome=nome)[0]
if request.method == 'POST':
form = GiornalieroForm(request.POST)
formset = OreSommInlineFormSet(request.POST, prefix='formset')
if form.is_valid() and formset.is_valid():
giornaliero=form.save(commit=True)
for form in formset.forms:
ora = form.save(commit=False)
ora.farmaco = giornaliero
ora.ospite = myospite
ora.save()
我試圖弄清楚如何編輯和保存表單集的數據。 我有一個查詢集,該查詢集返回OreFarmaco的24個實例,該實例應填充表單集,但是帶有instance關鍵字的表單集本身僅預見到一個實例。
OreSommInlineFormSet = inlineformset_factory(FarmacoGiornaliero,OreSomministrazione,form = OreForm,fields =('ore','quantita'),extra = 24,can_delete = False)
myospite = Ospite.objects.filter(cognome=cognome).filter(nome=nome)[0]
locfarmaco = Farmaco.objects.filter(farmaco=farmaco)[0]
giornaliero = FarmacoGiornaliero.objects.select_related() \
.filter(ospite=myospite) \
.filter(farmaco=locfarmaco)[0]
orefarmaco = OreSomministrazione.objects.select_related().filter(farmaco=giornaliero).filter(ospite=myospite)
if request.method == "POST":
form = GiornalieroForm(request.POST, instance=giornaliero)
formset = OreSommInlineFormSet(request.POST, prefix='formset', instance=orefarmaco[0])
if form.is_valid() and formset.is_valid():
giornaliero=form.save(commit=True)
formset.save()
謝謝。
//try to rewrite this codes it's complicated. Use get() instead
myospite = Ospite.objects.filter(cognome=cognome).filter(nome=nome)[0]
locfarmaco = Farmaco.objects.filter(farmaco=farmaco)[0]
giornaliero = FarmacoGiornaliero.objects.select_related() \
.filter(ospite=myospite) \
.filter(farmaco=locfarmaco)[0]
//
if request.method == "POST":
form = GiornalieroForm(request.POST, instance=giornaliero)
if form.is_valid():
gio = form.save(commit=True)
formset = OreSommInlineFormSet(request.POST, instance=gio)
if formset.is_valid()
gio.save()
formset.save()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.