1

と呼ばれる Django フォームPhase2Formがあります。ユーザーがフォームに移動したときに、特定のものが既に選択されていることを望みます。または類似の場合にこれを行う方法は知っていますが、 でこれを行う方法がわかりません。ForeignKey の主キーはわかります(URL の一部になります)。ModelChoiceFieldpurchase_orderpurchase_orderCharFieldModelchoceFieldpurchase_order

次のことを試しましたが、うまくいきませんでした。

def escalate(request, po):
  if request.method == 'POST':
    form = Phase2Form(request.POST, initial={'purchase_order': PurchaseOrder.objects.get(pk=po) })
    if form.is_valid():
      form.save()
      return HttpResponseRedirect('/po/p2/')
    else: 
      return render(request, 'input.html', {'input_type': 'Phase 2', 'formset': form, 'error': True})
  else: 
    form = Phase2Form()
    return render(request, 'input.html', {'input_type': 'Phase 2','formset': form,})

助けてくれてありがとう。

4

1 に答える 1

0

URL に基づく purchase_order の設定は、フォームが投稿されたときにのみ設定される request.POST 条件にあるようです。初期値設定をelse条件に下げます。

  else: 
    form = Phase2Form(initial={'purchase_order': PurchaseOrder.objects.get(pk=po) })
    return render(request, 'input.html', {'input_type': 'Phase 2','formset': form,})
于 2013-06-11T01:17:24.113 に答える