Joh*_*ohn 0 django django-forms
我正在使用django表单向数据库添加新对象.我目前的代码是:
if request.method == 'POST':
form = MyForm(data=request.POST)
if form.is_valid():
obj = form.save()
else:
form = MyForm()
return render_to_response('reflections/add_reflection.html', {'form':form},context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
上面的代码目前每次提交表单时都会添加一个新对象.我想要发生的是,下次按下保存按钮时编辑对象而不是添加新记录.
我该怎么做?
使用
instance_id = None
if request.method == 'POST':
try:
instance = MyType.objects.get(id=request.POST.get('instance_id'))
except MyType.DoesNotExist:
instance = None
form = MyForm(data=request.POST, instance=instance)
if form.is_valid():
obj = form.save()
instance_id = obj.id
else:
form = MyForm(instance=None)
return render_to_response('reflections/add_reflection.html', {'form':form, 'instance_id': instance_id or ''},context_instance=RequestContext(request))
Run Code Online (Sandbox Code Playgroud)
保存对象后,将其在上下文中的id传递给页面,并将其添加到表单内的隐藏输入字段name ='instance_id'.
快乐的编码.
| 归档时间: |
|
| 查看次数: |
2639 次 |
| 最近记录: |