[英]How to delete multiple objects in django?
我正在嘗試使用 html 復選框刪除 django model 多個對象,但我不能。 請指導我完成這項任務需要做什么。
為此,我嘗試了以下代碼,但失敗了。
視圖.py
class DeleteProducts(SuccessMessageMixin, View):
success_url = reverse_lazy('stock:stock')
success_message = "Products are deleted successfully."
def post(self, request, *args, **kwargs):
products = self.request.POST.getlist('product')
Product.objects.filter(pk__in=products).delete()
messages.success(self.request, self.success_message, extra_tags='alert-danger')
return redirect('stock:stock')
在模板中我是否完美地使用了復選框? 模板.html
<form method="POST" action="{% url 'stock:deleteproducts' %}">
{% csrf_token %}
{% for product in page_obj %}
<div class="row" >
<input type="checkbox" value="{{ product.id }}">
<div class="col-sm-2" >
<h5>{{ product.id }}</h5>
<img src="{{ product.Picture.url }}" height="120px" />
</div>
<div class="col-sm-4" >
<h5><u>Product Name</u>: {{ product.pro_name }}</h5>
<h6><u>Company Name</u>: {{product.companyName}}</h6>
<div class="row" >
<div class="col-sm" >
<p>Purchase Price: <b>{{product.Purchase_Price}}</b></p>
</div>
<div class="col-sm" >
<p class="pt-0">Sale Price: <b>{{product.Sale_Price}}</b> </p>
</div>
</div>
<div class="row" >
<div class="col-sm" >
<p>Quantity <b>{{product.Quantity}}</b></p>
</div>
<div class="col-sm" >
<p> Added By: <b>{{product.saler}}</b> </p>
</div>
</div>
</div>
<div class="col-sm-4" >
<p><b>Added Date</b>:{{ product.pub_date }}</p>
<hr/>
<center>
<a href="{% url 'stock:editproduct' product.id %}" class="btn btn-success" >Edit</a>
</center>
</div>
</div>
<hr/>
{% endfor %}
<input type="submit" class="btn btn-danger" value="Delete" >
</form>
網址.py
path('delete/', login_required(DeleteProducts.as_view(), login_url='login'), name='deleteproducts'),
您需要將name="product"
屬性分配給復選框,因為您嘗試使用self.request.POST.getlist('product')
獲取它:
<input type="checkbox" value="{{ product.id }}" name="product">
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.