2011-05-31 93 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('/') 

你在你的代碼中缺少回報聲明,以及額外的保存()是不必要的