2011-05-31 63 views
0

我在这里做错了什么,但我找不到它。保存模型 - 不会验证

我使用的模型形式:

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) 

但它没有保存。它只是重新加载页面,无论用户改变了什么,但是如果你实际刷新页面(从数据库中获取值),它就是旧值。

任何想法?如果这是因为表单实际上没有验证,我不知道为什么它没有验证。

回答

1

尝试只

if request.method == 'POST': 
    form = ArtistInfo(request.POST, instance=onesheet) 
    if form.is_valid(): 
     form.save() 
     return HttpResponseRedirect('/') 

你在你的代码中缺少回报声明,以及额外的保存()是不必要的