2

ModelForms を使用してユーザー レジストリ データを生成しています。フォームを送信すると、実際にレコードが追加されます。ただし、既存のレコードもフォーム形式で表示されます。新しいユーザーを追加したいだけです。

html フォームにサインアップ:

    <div class="container">
        <h1>Sign up</h1>
        <form method="post" action="/users/signup/">{% csrf_token %}
            <table>
                {{ formset }}     
                <tr><th><input type="submit" /></th></tr>
            </table>
        </form>
    </div>

ModelForms を宣言する関数:

def model_signup(request):
    ModelFormSet = modelformset_factory(Model)
    if request.method == 'POST':
        formset = ModelFormSet(request.POST, request.FILES)
        if formset.is_valid():
            formset.save()
            # do something.
    else:
        formset = ModelFormSet()
    return render_to_response("model_signup.html", {
        "formset": formset,
    }, context_instance=RequestContext(request))

ありがとう!

4

1 に答える 1

1

フォームセットを作成するときにクエリセットを指定できます。既存のレコードを表示したくない場合は、空の queryset を使用してくださいMyModel.objects.none()

ModelFormSet = modelformset_factory(MyModel)
if request.method == 'POST':
    formset = ModelFormSet(request.POST, request.FILES, queryset=MyModel.objects.none())
    if formset.is_valid():
        formset.save()
        # do something.
else:
    formset = ModelFormSet(queryset=MyModel.objects.none())
于 2013-11-03T00:01:41.743 に答える