0

Django:POSTオブジェクトをデータベースに直接挿入するための汎用ハンドラーはありますか?このようなハンドラーをたくさん書いていることに気づきました。

def ajax_storeObject(request):
    if request.method == 'POST':
         Object(
                field1 = request.POST["field1"],
                field2 = request.POST["field2"],
                field3 = request.POST["field3"],
                field4 = request.POST["field4"],
          ).save()
          return HttpResponse(json.dumps({"status":"Success"}), mimetype="application/json")
    return HttpResponse(json.dumps({"status":"Failed"}), mimetype="application/json")

この種のことを処理するための1行の一般的なビューがある可能性があるようです。そのような見方はありますか?

編集:ところで、私はモデルフォームに慣れていますが、ここで見ているユースケースはもっと狭いです:標準フォームに基づいていないRESTful AJAX呼び出し(たとえば、ユーザーがページ上のオブジェクトを操作し、サーバーに通知するためにREST呼び出しが送信されます。)

4

3 に答える 3

1

モデルフォームを見たことがありますか?

于 2011-12-31T16:01:53.777 に答える
1

実際にフォームを描画する必要があるフォームについては何もありません。ModelFormsは、ピストンやおいしいものなどを使用しない場合に使用するのに適しています。

これをあなたのページに入れてください: https ://docs.djangoproject.com/en/dev/ref/contrib/csrf/#ajax

class ObjectAjaxForm(forms.ModelForm):
  class Meta:
     model = Object
     fields = ("field1", "field2", "field3", "field4")


#or, if you don't want the "free" csrf protection
#@csrf_exempt
def ajax_store_object(request):
    #request.POST can be substituted with any dictionary/dictionary like object
    form = ObjectAjaxForm(request.POST)
    if form.is_valid():
      form.save()
      return HttpResponse(json.dumps({"status":"Success"}), mimetype="application/json")
    else:
      return HttpResponse(json.dumps({"status":"Failed"}), mimetype="application/json")
于 2012-01-01T01:26:31.687 に答える
0

私の知る限り、一般的なAjaxビューはありませんが、おそらくこれを探していますか?

Object(**request.POST).create()

もちろん、request.POSTモデルに入れたくないもの(「送信」フィールドなど)が含まれていないことを確認する必要があります。

于 2011-12-31T17:06:14.510 に答える