繁体   English   中英

Django编辑表单创建新实例

[英]Django Edit Form Creates New Instance

我正在创建一个表单,允许用户编辑保存到django数据库中的事件。 问题是当它运行代码时,在数据库中创建了一个新实例,旧实例保留在数据库中,然后都可以在站点中查看它们

以下是(某些)HTML表单,用于调用编辑视图并编辑数据库中的实例

 <div class="modal-footer"> <form action="edit/" method="POST"> {% csrf_token %} <input type="hidden" name="event_edit_id" id="event_edit_id"> <input class="btn btn-primary btn-block" type="submit" value="Save Changes"/> </form> </div> 

接下来是用于编辑随表单发送的id的事件的View:

def edit(request):
if request.method == "POST":
    event_id = int(request.POST.get('event_edit_id'))
    event = Events.objects.get(pk=event_id)
    form = AddEventForm(request.POST or None, instance=event)

    if form.is_valid():
        form.save()
        return redirect('calendar')

我知道我丢失了一些东西,但是我看不到,感谢您的帮助!

编辑我注意到,当提交代码进行编辑时,它直接转到/ calendar /而不是/ calendar / edit,所以这是我用来映射文件的urls文件

urlpatterns = [
path('', views.calendar, name="calendar"),
path('delete/', views.delete, name="delete"),
path('edit/', views.edit, name="edit"),
]

在没有看到您的表单的情况下,我只能猜测没有任何内容填充edit_event_id ,因此该表单被另存为新事件。 当前, edit_event_id不是绑定字段,因此它不包含任何数据。

好的,所以我明白了,其他人都不可能得到它,因为代码中的问题比html中包含的问题还要严重。

我的错误是上次编辑后我没有正确更改代码。 还有一个打开的表单,我没有删除form标记的开头。

基本上,我不确定每个HTML标签都有一个打开和关闭标签。

正确地说,上面的代码将可以编辑条目:)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM