0

私はdjangoを初めて使用し、プログラミング全般にかなり慣れていません。私はdjangoチュートリアルを実行し、この質問に対する回答をWebで検索しましたが、役に立たなかったので、今ここにいます. post が django でどのように機能するか混乱しています。私が見たすべてのチュートリアルでは、Web ページを表示するビューで return 関数を使用する方法について説明しました。わかりました。しかし、return ステートメントからページがレンダリングされている場合、ユーザーはどのようにデータを更新するのでしょうか? 復帰後は機能が停止するのでこれ以上の更新はありませんよね?ここで何が欠けていますか?どんな助けでも大歓迎です、私はここでかなり必死になっています。

4

3 に答える 3

0

Djangoビューの1つのパターン(決して唯一のパターンではありません)は、ビューの先頭でリクエストメソッド(GETまたはPOST)をチェックすることです。POSTの場合は、(ビューが戻るに)受信データを処理してから、レンダリングされたテンプレートまたはリダイレクトのいずれかを返します。

def view_function(request):
    if request.method == 'POST':
        if data_is_valid(request.POST):
            save_data(request.POST)
            return HttpResponseRedirect('/somewhere/good')
        else:
            return render('template', {'errors': what_went_wrong}
    else:
        return render('template')
于 2012-10-02T06:14:04.177 に答える
0

ユーザーは、関数のロジックでデータを更新しますview。つまり、ユーザーが何かを更新したい場合は、更新ロジックをview関数内の の前に配置しreturnます。たとえば、次のようにします。

def update(request):
    item = <some model>.objects.get(<something>)
    <more code>
    return <something>
于 2012-10-02T05:26:42.070 に答える
0

通常、編集ビュー機能には 2 つの部分が含まれます。1 つはデータを更新するためのもので、もう 1 つは更新フォームを表示するためのものです。例えば、

def user_edit(request):

    if request.method == 'POST':            # is this a save action?
        # save the user data

        user_id = request.POST.get('user_id')
        username = request.POST.get('username')
        description = request.POST.get('description')

        user = User.objects.get(id=user_id)
        user.username = username
        user.description = description
        user.save()

        return HttpResponseRedirect('/user/')          # redirect to index

    else:

        # show the edit form
        user_id = request.GET.get('user_id')
        user = User.object.get(id=user_id)

        return render_to_response('/user/edit.html', { 'user': user })

ラインにはさまざまな選択肢がありますif request.method == 'POST'if request.POST.get('user_id')指定したフィールドが設定されているかどうかを確認して、これが保存アクションかどうかを判断するために使用することもできます。

于 2012-10-02T06:13:37.037 に答える