0

これを完全に間違った方法で行っているかどうかはわかりませんが、html テンプレートには、複数のフォームを表示する for ループと、すべてのフォームからデータを送信するための 1 つの送信ボタンがあります。

 {% for i in Attribute_list %}
<form action="/Project/create/" method=post>{% csrf_token %}
{{ i }}:
<input type=text name={{ i }}><br>
<hr>
{% endfor %}
<input type=submit>

これに関する問題は、最後のフォームのみを送信することです。

私が直面している他の問題は、ビューからデータを取り戻すことです。フォームに変数「i」という名前を付けているため、views.py でこのデータを「取得」する方法がわかりません。

def create_config(request):
    if request.method == 'POST':
        data_list = []
        for data in request.POST.getlist():
            data_list.append(data)
4

1 に答える 1

0

これを確認できますか?

<form action="/Project/create/" method="post">
    {% csrf_token %}
    {% for i in Attribute_list %}
       {{ i }}: <input type="text" name="{{ i }}"><br>
       <hr>
    {% endfor %}
    <input type="submit">
</form>

フォームの数に関係なく、JS なしで理解しているように、作成するPOSTリクエストは 1 つだけです。

他の例では、HTML は有効ではないため、異なるブラウザーでは異なる動作をする可能性があります。しかし、あなたが閉じていない場合は、form最後のものを提出する必要があります。

第二部に関しては

def create_config(request):
    if request.method == 'POST':
        data_list = []
        for data in request.POST.getlist():
            data_list.append(data) 

を使用する必要があると思いますAttribute_list。または、取得したすべての「POST」変数を反復することもできます。

def create_config(request):
    if request.method == 'POST':
        data_list = []
        for key in request.POST:
            data_list.append(request.POST[key]) # or .extend(request.POST.getlist(key)
于 2013-10-28T19:34:32.457 に答える