前端传值: href="/data_del/?del={{ news_datum.id }}">class="glyphicon glyphicon-trash">
后端接收值并删除:
def data_del(request):
del_d=request.GET.get("del")
print(del_d)
models.qq_news.objects.filter(id=del_d).delete()
return redirect('/data_enter/')
把 del_d 转换成int格式 直接报错,只有这样写不报错,可是就是不执行操作
这样写有问题吗 为什么就是删除不了呢, 一点反应也没有, windows运行就没有问题, centos坑太多了
该回答引用ChatGPT
根据您提供的信息,可能是因为您在将del_d转换为整数时遇到了类型错误。请尝试使用以下代码将其转换为整数:
def data_del(request):
del_d = request.GET.get("del")
del_id = int(del_d)
print(del_id)
models.qq_news.objects.filter(id=del_id).delete()
return redirect('/data_enter/')
如果这不起作用,您可以尝试使用try和except语句来捕获异常并进行调试:
def data_del(request):
del_d = request.GET.get("del")
try:
del_id = int(del_d)
except TypeError:
print("del_d is not a valid integer.")
else:
print(del_id)
models.qq_news.objects.filter(id=del_id).delete()
return redirect('/data_enter/')
另外,您提到在Windows上没有问题,但在CentOS上出现了问题。这可能是由于操作系统环境的不同导致的问题。您可以尝试检查您在CentOS上使用的Python版本和依赖库版本是否与Windows上的相同。此外,您还可以检查您的日志文件或控制台输出以查看是否有其他错误信息。
视图函数里print(del_d) 打印出来是什么?