作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个模型产品:
class Product(models.Model):
name = models.CharField(verbose_name="name", max_length=40)
cost = models.FloatField(verbose_name="price")
def __unicode__(self):
return self.name
我创建了一个 View ,可以在其中添加新产品,但如何删除这些产品?
我的想法:
def delete_product(request, pk):
if request.method == "POST":
if form.is_valid():
product = form.delete(commit=False)
product.delete()
return redirect('homeshop.views.product_list', pk=product.pk)
但是接下来呢?我添加到模板(我可以在其中编辑产品并保存它),但它不起作用:
{{ delete_product }}
现在在我的模板中:
{% block content %}
<h1>Nowy wydatek</h1>
<form method="POST" class="product-form">{% csrf_token %}
{{ form.as_p }}
<button type="submit" class="save btn btn-default">Save</button>
</form>
{% endblock %}
最佳答案
你需要做这样的事情:
模板.html
{% for product in products %}
{% csrf_token %}
...
<form action="{% url 'delete_product' product.id %}" method="POST">
<button type="submit">Delete</button>
</form>
...
{% endfor %}
那么您需要更新您的 urls.py 以定义一个 URL,以便在访问正确的 URL 时调用您的删除函数。
url(
r'^delete/<product_id>$',
'delete_product',
name='delete_product'
)
我不知道你的 urls.py 是如何布局的,所以你的 URL 可能看起来有点不同。
关于python - 如何在 django View 中删除对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30486354/
我是一名优秀的程序员,十分优秀!