Django DeleteView不从d中删除对象

2024-09-20 04:15:00 发布

您现在位置:Python中文网/ 问答频道 /正文

首先感谢您抽出时间。 我刚刚学习了CreateView UpdateView和DeleteView模型。我让他们都工作了。我可以改变我的对象,我可以删除它们,但删除一个对象后,我尝试创建另一个对象,并创建一个像以前一样没有被删除的对象。给我以下pk的删除之前

虽然现在的主键应该是3,但还是会创建de object,我想在我点击dedelete按钮并确认删除后,它不是从数据中删除的。在

这些是我的模型:

> from django.db import models from django.urls import reverse
> 
> 
> 
> class Dreams (models.Model):
>     titulo = models.CharField(max_length=100)
>     objetivo = models.CharField(max_length=100)
>     imagem = models.CharField(max_length=100)
> 
>     def get_absolute_url(self):
>         return reverse ('webdeve:index', kwargs={'pk': self.pk})
> 
>     def __str__(self):
>         return self.titulo + ' - ' + self.objetivo
> 
> 
> class Wich (models.Model):
>     lets = models.ForeignKey(Dreams, on_delete=models.CASCADE)
>     make = models.CharField(max_length=100)
>     it = models.CharField(max_length=100)
>     favorite = models.BooleanField(default=False)
> 
>     def __str__(self):
>         return self.make

我的视图.py公司名称:

^{pr2}$

我的网址.py公司名称:

from django.conf.urls import url
from webdeve import views

app_name = 'webdeve'

# Dreams

urlpatterns = [
    url(r'^$', views.IndexView.as_view(), name='index'),

# Dreams/detail

    url(r'^(?P<pk>[0-9]+)/$', views.DetailView.as_view(), name='detail'),

# Dreams/detail/add
    url(r'^dream/add/$', views.DreamCreate.as_view(), name='dream-add'),

# Dreams/detail/Update

    url(r'^dream/(?P<pk>[0-9]+)/$', views.DreamUpdate.as_view(), name='dreams-uptdate'),
# Dreams/detail/detete

    url(r'^dream/(?P<pk>[0-9]+)/delete/$', views.DreamDelete.as_view(), name='dreams-delete'),

]

还有我的索引.html使用“删除”按钮:

<!-- linkando css no html -->
{% extends 'base.html' %}
{% block nav %}

      <ul>
        {% for Dreams in object_list %}
            <a href="{% url 'webdeve:detail' Dreams.id %}"><img src={{ Dreams.imagem }}></a>
            <li><a href="{% url 'webdeve:detail' Dreams.id %}"> {{ Dreams.titulo }} - {{ Dreams.objetivo }} </a><li>

            <!--delete BUTTON-->

              <form action="{% url 'webdeve:dreams-delete' Dreams.id %}">
                {% csrf_token %}
                <input type="hidden" name="dreams_id" value="{{ Dreams.id }}" method="post" style="display: inline" >
                <button type="submit" class="btn btn-default btn-sm">
                  <span class="glyphicon glyphicon-trash"></span>
                </button>
              </form>
        {% endfor %}
      </ul>
{% endblock %}

Tags: nameselfviewurlmodelsasdeletelength
1条回答
网友
1楼 · 发布于 2024-09-20 04:15:00

DeleteView只删除POST上的对象,而不是GET。因此,您需要在表单中使用method="post",因为GET将呈现这个confirm_删除.html再一次。在

<form method="post" action="">
...
</form>

如果您可以在get时进入DeleteView,action=""就是您需要发布的全部内容。在

相关问题 更多 >