Django Crud 帮助 - 更新和删除

如何解决Django Crud 帮助 - 更新和删除

我是 django 的新手并试图完成一个 crud 项目,但是我在更新和删除方面遇到了问题。我尝试了多种故障排除方法,但我一直在做空。我已经为它的更新部分提供了错误消息。所以我在寻求建议。

错误信息: /update/1 处的运行时错误

下面是 urls、views 和 html 的代码

网址 urlpatterns = [

path('admin/',admin.site.urls),path('add/',views.add,name="add"),path('',views.show,name="show"),path('update/<update_id>/',views.update,name="update"),path('delete/<delete_id>/',views.delete,name="delete"),

]

观看次数

定义添加(请求):

form = StudentForm(request.POST or None)
#student = Student.objects.all()
if form.is_valid():
    form.save()
return render(request,'add.html',{'form': form})

定义显示(请求):

student = Student.objects.all()
return render(request,'show.html',{'student': student})

def update(request,update_id):

student = Student.objects.get(id=update_id)
form = StudentForm(request.POST,instance=student)
if form.is_valid():
    form.save()
    return HttpResponseRedirect('/')
return render(request,'update.html',{'student':student})

定义删除(请求,delete_id):

student = Student.objects.get(id=delete_id)
student.delete()
return HttpResponseRedirect('/')
**更新HTML:** {% 扩展 'base.html' %} {% 块内容 %}
更新 {% csrf_token %} ID 名称 接触
更新记录 显示详细资料 {% 端块内容 %} 非常感谢您的指导,也许我没有看到任何东西。 先感谢您

解决方法

您是否有关于错误的更多信息,或者是“RuntimeError at /update/1”您得到的所有输出?

无论如何我都会尽力帮忙:

  1. 对于您的更新视图,我会采取不同的做法: 我通常使用 get_object_or_404 来引发错误,以防我找不到给定的模型实例。然后我会做一个条件检查,看看请求是 POST(用户已将更新表单数据发送到服务器)还是 GET,用户在更新数据之前刚刚请求了表单。

据我所知,您没有考虑 GET。表格也应包含在上下文中。我

这就是我的更新函数的样子:

def update_student(request,update_id):
    student = get_object_or_404(student,id=update_id)

    if request.method != 'POST':
        form = StudentForm(instance=student)

    else:
        form = StudentForm(instance=student,data=request.POST)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/')

    context = {'form': form,'student': student}
    return render(request,'update.html',context)
  1. 对于您删除视图的过程是相似的,我将再次使用 get_object_or_404。我会确保请求是 POST,否则不需要删除并在最后返回 render(request,template,{}) 以正确呈现页面。我看到您没有在函数中传递模板,您需要这样做。

这是我将如何执行删除功能:

def delete(request,delete_id):
    template = 'delete.html'
    student = get_object_or_404(student,id=delete_id)

    if request.method == 'POST':
        student.delete()
        return HttpResponseRedirect('/')

    return render(request,{})

关于 Django 中基于函数的视图的 CRUD 入门的伟大初学者的另一件事你可以查看这本书:http://bedford-computing.co.uk/learning/wp-content/uploads/2015/10/No.Starch.Python.Oct_.2015.ISBN_.1593276036.pdf

Project Section > Web Applications 在那里你会发现一个使用基于函数的视图在 Django 上制作的教程应用程序,并且比原始 django 文档解释得更好。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?