Я не могу сделать кнопку удаления, чтобы запустить delete () в запросе БД в Django.Помочь ничего не получается - PullRequest
0 голосов
/ 31 января 2019

Я не могу сделать кнопку удаления в django_tables2.Я думаю, что я пытаюсь все из Google и не работает: / Я пытаюсь общие взгляды и другое и ничего.В скрипте Python это работает, но с точки зрения приложения нет.

Не могли бы вы посмотреть мой код и сказать мне, что я сделал не так?

urls.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'),
   ] 

views.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 ()

и тоже не работает :(

tables.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='')

cars-list-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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...