【发布时间】:2011-05-08 21:24:39
【问题描述】:
如何更新现有记录而不是添加新记录,这是我的问题。现在我正在尝试在编辑表单中编辑现有产品数据并保存新的更改。但是,我没有更新现有的产品数据,而是得到了一个新产品,所以一切都被复制了。创建新产品,而不是更新其现有数据。我该怎么做才能解决这个问题?
这是我的代码:
@login_required
def edit(request, id=None):
if request.method == 'POST':
form = ProductForm(request.POST)
if form.is_valid():
product = form.save( commit=False )
product.save()
return HttpResponseRedirect( '/details/%s/' % ( product.id ) )
Eternicode,感谢您的出色回答,代码现在可以正常工作并且数据不会重复,因为我在编辑日期后保存表单。根据您的回复,以下是可行的:
@login_required
def edit(request, id=None):
if request.method == 'POST':
product = Product.objects.get(id__exact=id)
form = ProductForm(request.POST, instance=product)
print "PRODUCT POST"
if form.is_valid():
print "Display Form"
product = form.save( commit=False )
product.save()
return HttpResponseRedirect( '/details/%s/' % ( product.id ) )
【问题讨论】:
标签: django forms django-views