gpt4 book ai didi

python - 如何在 django View 中删除对象?

转载 作者:行者123 更新时间:2023-12-01 04:41:53 26 4
gpt4 key购买 nike

我有一个模型产品:

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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com