0

だから私は基本的にこのコードを持っています:

@render_to('hello/home.html')
def home(request):
    info = Info.objects.get(pk=1)
    if request.method == "POST":
        form = InfoForm(request.POST, instance=info)
    else:
         form = InfoForm(instance=info)
   return {"info": info, "form": form}

ああ、それは私が推測したようには機能しません。モデルインスタンスまたはPOSTのいずれかのみでフォームを初期化すると機能しますが、両方の場合は機能しません。モデル インスタンスからデータを入力してフォームを作成し、request.POST からのデータで更新する (いい?) 方法はありますか?

4

1 に答える 1

1

あなたが書いているコードはすでにフレームワークにあります。

urls.py

from django.views.generic import UpdateView
from myapp.forms import InfoForm
urlpatterns = patterns('',
    url(r'^info/(?P<pk>[-_\w]+)/update/$', UpdateView.as_view(model= Info,template_name="hello/home.html",form_class=InfoForm), name='info_update'), 
)
# you might need to include a success url in the **kwargs i.e. success_url="/thankyou/"
于 2013-01-03T20:06:55.173 に答える