首页 > 解决方案 > 我无法在 django 的 db 查询中执行删除按钮来运行 delete()。帮助什么都行不通

问题描述

我不能在 django_tables2 中删除按钮。我想我尝试了 google 的所有东西,但都不起作用:/ 我尝试了通用视图和另一个,什么都没有。在 python 脚本中这项工作,但在应用程序的视图中不是。

你能看看我的代码并告诉我我做错了什么吗?

网址.py

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


   app_name = 'carslist'

   urlpatterns = [
   url('', views.carslist, name='carslist'),
   url(r'^delete-entry/(?P<pk>\.*)/$', views.DeleteView.as_view(), 
   name='delete_view'),
   ] 

视图.py

def carslist(request):

    fleets = Fleet.objects.all()
    fleetTable = FleetTable(fleets, prefix='u_')

    RequestConfig(request, paginate=False).configure(fleetTable)

    payload = {
        'fleetTable': fleetTable,
    }

    return render(request, 'carslist/car-list.html', payload)


   class DeleteView(SuccessMessageMixin, DeleteView):
      model = Fleet
      success_url = '/'
      success_message = "deleted..."


   def delete(self, request, *args, **kwargs):
     self.object = self.get_object()
     id = self.object.id
     request.session['id'] = id  # name will be change according to your need
     message = request.session['id'] + ' deleted successfully'
     messages.success(self.request, message)
     return super(DeleteView, self).delete(request, *args, **kwargs)

我尝试使用如下代码: def delete(request, record_id): row = Fleet.objects.filter(id=record_id) row.delete()

也不起作用:(

表格.py

   import django_tables2 as tables
   from django_tables2 import TemplateColumn
   from regcar.models import Car, Brand, Fleet


   class FleetTable(tables.Table):
      producent = tables.Column(accessor='car.brand', 
      verbose_name='Producent')

   class Meta:
     model = Fleet
     attrs = {'class': 'table table-sm'}
     sequence = ('id', 'producent', 'car', 'rok_produkcji', 
     'rodzaj_paliwa', 'pojemność_silnika_w_cm3', 'km',              
     'numer_rejestracyjny', 'vin', 'vat', 'leasing', 
     'przebieg','delete')



     delete = TemplateColumn(template_name='pages/tables/button- 
       delete.html', verbose_name='')

汽车列表-html

   {% extends "base_car.html" %}
   {% load django_tables2 %}

   {% block head %}
   {% load static %}e
   <link rel="stylesheet" 



href="https://cdn.datatables.net/1.10.12/css/dataTables.bootstrap.min.css">
<script 
 src="https://cdn.datatables.net/1.10.12/js/jquery.dataTables.min.js"> 
 </script>
  <script 
 src="https://cdn.datatables.net/1.10.12/js/dataTables.bootstrap.min.js"> 
 </script>
   <script src="{% static "datatable/js/datatableview.min.js" %}"></script>
   <script>
    datatableview.auto_initialize = false;
    $(function () {
        var xeditable_options = {};
        datatableview.initialize($('.datatable'), {
            fnRowCallback: datatableview.make_xeditable(xeditable_options),
        });
          })
   </script>
    {% endblock %}

     {% block login-div %}
     <table>
       <tr>
        <th>
              <a class="btn btn-outline-success btn-sm" href="{% url 
        'dashboard:dashboard' %}" role="button"
               style="margin-right: 30px;">Dashboard</a>
        </th>
        <th></th>
        <th>Hi {{ user.username }}!
            <p><a href="{% url 'logout' %}">logout</a></p></th>
        </tr>
      </table>
       {% endblock %}

           {% block content2 %}
           <h2>List of yours cars<br/></h2>
            <hr style="border-top: 1px solid #aaaaaa">


               {% render_table fleetTable %}
            {% endblock %}

按钮

  <form action="{% url 'carslist:delete_view' pk=part.pk %}" method="POST">
     {% csrf_token %}
     <input class="btn btn-default btn-danger" type="submit" 
 value="Delete"/>
  </form>

标签: pythondjangobutton

解决方案


推荐阅读