简体   繁体   English

在 Django 中以相同的表单方法为两个不同的提交按钮传递值

[英]pass value for two different submit buttons in same form methods in Django

Lets us consider my template.html as让我们将我的 template.html 视为

    <form class="form-horizontal" id="adhoc-form" method="post" action="{% url 'contacts:add_item' item.id %}">
    
        {% csrf_token %}
    
        <fieldset>
            <div class="control-group">
                <label for="id_item_filename" class="control-label">Items
                <span class="text-error">*</span></label>
                <div class="controls">
                    <select placeholder="Item filename" name="item" id="id_item_filename" class="span3" required="required">
                        <option value="">---------</option>
                        {% for i in items %}
                             <option value="{{i.0}}">{{i.1}}</option>
                        {% endfor %}
                    </select>
                </div>
           </div>
        </fieldset>
        <div id="form-buttons-container" class="form-actions" style="padding-left: 0px;">
           <div class="controls">
           <input type="hidden" class="btn btn-primary btn-medium" id= 'i_id' name='i_id' value="{{data.0.id}}">
           <input type="submit" class="btn btn-primary btn-medium" value="Submit">
           <input type="submit" class="btn btn-primary btn-medium" value="Delete">
           </div>
        </div>

 </form>

my url.py is我的 url.py 是

url(r'^stock/item/add/item_name/(?P<id>\d+)/$', login_required(UpdateBarcode.as_view()), name="add_item"),

my views.py is我的 views.py 是

class UpdateItem(View):
    def post(self, request, id):
       item_id = request.POST.get('item')
       items = Items.objects.get(id=item_id)
       try:
          JobItems.objects.filter(id=id).update(item_name=items.name)
       except:
           messages.error(request, 'Cannot update')
       return redirect(reverse("contacts:item_list"))

Here when clicking the submit button we need to update item and we click delete button item should be deleted.please help me how can do both the submit and delete operations in the same view单击提交按钮时,我们需要更新项目,单击删除按钮项目应被删除。请帮助我如何在同一视图中同时执行提交和删除操作

You can get started with updating your HTML to give buttons name field:您可以开始更新您的 HTML 以提供按钮name字段:

   <input type="submit" class="btn btn-primary btn-medium" name="update-item" value="Submit">
   <input type="submit" class="btn btn-primary btn-medium" name="delete-item" value="Delete">

Now you can check which button is triggered.现在您可以检查触发了哪个按钮。 ( update-item or delete-item ): update-itemdelete-item ):

def post(self, request, id):
    item_id = request.POST.get("item")
    items = Items.objects.get(id=item_id)
    if "update-item" in request.POST:
        try:
            JobItems.objects.filter(id=id).update(item_name=items.name)
        except:
            messages.error(request, "Cannot update")
    elif "delete-item" in request.POST:
        JobItems.objects.get(id=id).delete()
    return redirect(reverse("contacts:item_list"))

Note that I don't know your logic for item-delete operation so you can update here.请注意,我不知道您的项目删除操作逻辑,因此您可以在此处更新。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM