2016-05-03 2 views
2

私はDjangoを初めて使いました。私は、サーバーに新しい会議オブジェクトを作成するためにサーバーにPOST要求を送信するクライアントアプリケーションを持っています。 Serversideコードは次のようになります。DjangoのPOST値を抽出するためのテンプレート

new_conf.date = request.POST['date'] 
new_conf.name = request.POST['name'] 
new_conf.languages = request.POST['languages'] 
new_conf.is_open = request.POST['is_open'] 
new_conf.place = request.POST['place'] 
new_conf.recognition_on = request.POST['recognition_on'] 

これを短く書く方法はありますか?それは同じような状況で使用するいくつかの一般的なテンプレートを書くことは可能ですか?

答えて

5

あなたはModelFormがあなたのモデルを形成し、それが参照

# Create a form instance from POST data. 
>>> conf_form = ConferenceForm(request.POST) 

# Save a new Conference object from the form's data. 
>>> new_conf = conf_form.save() 

モデルインスタンスにrequest.POSTデータを「解凍」持たせることができます。 https://docs.djangoproject.com/es/1.9/topics/forms/modelforms/#the-save-method

あるいは、よりPythonの汎用ソリューションのために、あなたがしたいキーのリストを作成し、setattrを使用するかのように、あなたのdictにキーを設定することができ、以下の

for key in ['date', 'name', 'languages', ...]: 
    setattr(new_conf, key, request.POST[key]) 

    # Or if new_conf is a dict-like obj 
    new_conf[key] = request.POST[key] 
関連する問題