我在这里做错了,但我找不到。
我正在使用模型表单:
class ArtistInfo(ModelForm):
class Meta:
model = Onesheet
fields = (
'name',
'genre',
'location',
'biography',
)
尝试保存为现有记录输入的数据。
def edit_artist_info(request, onesheet):
onesheet = Onesheet.objects.get(id = onesheet)
if request.method == 'POST':
form = ArtistInfo(request.POST, instance=onesheet)
if form.is_valid():
test = form.save(commit=False)
test.save()
HttpResponseRedirect('/')
form = ArtistInfo(instance=onesheet, label_suffix='')
variables = RequestContext(request, {
'onesheet':onesheet,
'form': form,
})
return render_to_response('edit_artist_info.html', variables)
但它不是在储蓄。它只是用用户更改的内容重新加载页面,但如果你实际刷新页面(从数据库中获取值),那就是旧的值。
有什么想法吗?如果是因为表单实际上没有验证,我不知道为什么它没有验证。
答案 0 :(得分:1)
尝试
if request.method == 'POST':
form = ArtistInfo(request.POST, instance=onesheet)
if form.is_valid():
form.save()
return HttpResponseRedirect('/')
您错过了代码中的 return 语句,并且不需要额外的save()