0

djangoを使用してeコマースサイトを構築しています。注文が既に配信されたことを示すボタンを作成したいと思いました。

ここに画像の説明を入力してください

チェックボックスでこれを達成できると確信していますが、タブレットを使用するとクリックしやすくなるため、ボタンを使用したいと思いました。

誰かが誤ってボタンを間違った順序でクリックした場合に備えて、ボタンも「クリック不可」にしたいと思います。

HTMLでフォームを作成する必要がありますか?またはそれを行うためのより簡単な方法がありますか。

これは私のhtmlです:

Order page

<table>
    <tr>
        <td>#</td>
        <td>Name</td>
        <td>Email</td>
        <td>Phone</td>
        <td>Order</td>
        <td>Order Quantity</td>
        <td>Delivered</td>
    </tr>

    {% for ord in orders %}
        {% for food in ord.orderitem_set.all %}

        <tr>
            {% if forloop.counter == 1 %}
                <td>{{ord.pk}}</td>
                <td>{{ord.user.first_name}}</td>
                <td>{{ord.user.email}}</td>
                <td>{{ord.user.get_profile.phone}}</td>

            {% else %}
                <td colspan="4"></td>
            {% endif %}

                <td>{{food.name}}</td>
                <td>{{food.quantity}}</td>

            <td>{% if forloop.counter == 1 %} <button type="button">Delivered</button> {% endif %}</td>
        </tr>
        {% endfor %}
    {% endfor %}

</table>  


</body>
</html>  
4

1 に答える 1

1

うーん、ボタンの周りにフォームを配置するだけで「簡単な方法」になると思います^^

後で必要に応じて、以下のほぼ同じビューコードを使用して、気の利いたJavaScriptトグルにすることができます

たとえば、ボタンの周り...

<form action="{% url show_orders %}" method="post">
    <input type="hidden" name="order-id" value="{{ ord.pk }}"/>
    <input type="hidden" name="action=" value="toggledelivery"/>
    <button type="button">{% if not ord.is_delivered %}Not {% endif %}Delivered</button>
</form>

あなたの見解では、次のようなものです...

def show_orders(request):

     if request.method == "POST": 
         order_id = request.POST.get('order-id', None)

         # TODO toggle the order here

         return HttpResponseRedirect(back_to_the_order_admin_page)
     else:
         # ...show the admin page
于 2012-08-28T01:57:55.040 に答える