保存时复制数据库中的数据(Django 表单)

Posted

技术标签:

【中文标题】保存时复制数据库中的数据(Django 表单)【英文标题】:Duplicating data in db while saving (Django form) 【发布时间】:2016-02-01 01:02:19 【问题描述】:

我创建了一个表单,当进入页面时,它会从 json 文件加载初始数据,然后我可以在同一个表单中编辑和保存数据。一切都很完美,但每次我按下提交按钮时,数据库都会接受两行相同的数据。任何帮助表示赞赏。

views.py

def form_save_and_edit(request, id=None, template_name='create.html'):

""" referring data from "model_from_json()",
making data visible within another function """

func = model_from_json()

""" savind and editing form data in the same form """

form = UserDataForm(request.POST)
if request.POST:

    updated_field = form.save()
    last_name = request.session['last_name'] = updated_field.last_name
    first_name = request.session['first_name'] = updated_field.first_name
    email = request.session['email'] = updated_field.email
    skype = request.session['skype'] = updated_field.skype

    form = UserDataForm(
    'last_name': last_name,
    'first_name': first_name,
    'skype':skype,
    'email':email
    )

    redirect_url = reverse('create')
    message = messages.success(request, "You successfully updated your profile!")
    if form.is_valid():
        form.save()
else:

    form = UserDataForm(
        'last_name': func['last_name'],
        'first_name':func['first_name'],
        'email':func['email'],
        'skype':func['skype'],

        )

    message = messages.success(request, "You just loaded your profile initial data")
return render_to_response('create.html', 'form': form,, context_instance=RequestContext(request))

【问题讨论】:

【参考方案1】:

您似乎调用了两次form.save() 语句。一旦在方法的开头,这里:

    updated_field = form.save()

最后一个:

    if form.is_valid():
    form.save()

【讨论】:

以上是关于保存时复制数据库中的数据(Django 表单)的主要内容,如果未能解决你的问题,请参考以下文章

用于复制和粘贴垂直列表的 Django 表单字段

如何上传图像并将其保存在数据库中? [复制]

Django - 如何将 javascript 变量保存到 Django 数据库中? [复制]

Django:使用视图和表单复制模型对象

通过 Django 中的模型表单保存多对多数据

当我尝试提交表单以存储某些值和上传图像的路径到数据库时,我收到[对象引用未设置...]的错误[复制]