Я не могу сделать кнопку удаления в 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>