1

djangoのviews.pyでフォーム内に生成されたテーブルのラジオボタンの値を複数回受け取りたいです。

私のテンプレートファイルは次のようなものです:

<form action = "/appName/accept" method = "POST"
    {% for l in list %}
        <table>
        <tr>
        <td>{{l.value}}</td> 
        </>tr
        </table>  
        <input type = "radio" name = "acceptance" value ="accept">Accept</input>
        <input type = "radio" name = "acceptance" value ="reject">Reject</input>
     {% endfor %}
     <input type ="submit" name = "submit">SUBMIT</input>
</form>

つまり、レンダリングされたページは次のようになります。

値 1

  • 承認

  • 拒絶

値 2

  • 承認
  • 拒絶

送信ボタン

ユーザーが送信ボタンをクリックするとすぐに、各値のすべてのラジオ ボタンの値とテーブルの行を収集したいのですが、views.py でそれを行う方法を教えてください。ここで「受け入れ」のように無線入力に共通の名前を付けると、一度にそのうちの1つだけが選択されることを私は知っています。助けてください。私はこの概念とジャンゴに不慣れです。

4

1 に答える 1

2

django フォームセットを使用することをお勧めします https://docs.djangoproject.com/en/1.8/topics/forms/formsets/

ドキュメントに記載されているように:

from django.forms.formsets import formset_factory
from django.shortcuts import render_to_response
from myapp.forms import ArticleForm

def manage_articles(request):
    ArticleFormSet = formset_factory(ArticleForm)
    if request.method == 'POST':
        formset = ArticleFormSet(request.POST, request.FILES)
        if formset.is_valid():
            for form in formset:
                form.cleaned_data...
                # here you can access each radio button


    else:
        formset = ArticleFormSet()
    return render_to_response('manage_articles.html', {'formset': formset})

manage_articles.html テンプレートは次のようになります。

<form method="post" action="">
    {{ formset.management_form }}
    <table>
        {% for form in formset %}
        {{ form }}
        {% endfor %}
    </table>
</form>
于 2015-06-14T12:00:46.013 に答える