python - 我无法在 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>
解决方案
推荐阅读
- c# - 在 Xamarin 中的 TabbedPages 之间进行通信
- r - 根据单独过滤器的条件过滤管道中的值
- ruby-on-rails - 收到“NoMethodError:nil:NilClass 的未定义方法‘上传’”错误
- python - 在 Python 中高效地迭代 3.311031748 E+12 组合
- java - 从java中读取文件后将数据值分组
- r - 为数据框编写函数
- python - python嵌套列表错误,ValueError:int()的无效文字,基数为10:'beer'
- python - 在 Python 中添加以签入 if-else 块
- python - 为什么 matplotlib 在 jupyter notebook 中显示的绘图与导出为 pdf 时不同
- caching - 对于缓存,您如何确定要写入高度关联集的哪个块?