2011-05-11 67 views
0

我試圖在測試目的下對我的視圖進行硬編碼。我如何在不遇到錯誤的情況下執行此操作?Django HardCoding表單中的多對多字段

我的觀點:

`DEF創建(請求): 形式= PlayForm(request.POST或無) 如果form.is_valid():

play = form.save(commit=False) 
    play.track = 2 
    play.save() 
    request.user.message_set.create(message='Play Was created') 
    if 'next' in request.POST: 
     next = request.POST['next'] 
    else: 
     next = reverse('coup_show') 
    return HttpResponseRedirect(next) 
return render_to_response(
    'dash/create.html', 
    {'form':form}, 
    context_instance = RequestContext(request)` 

我的模型:

class Play(models.Model): 
    track = models.ForeignKey(Track,null=True, related_name='track_creator_set') 

當我嘗試這個時,我得到以下錯誤...

Cannot assign "2": "Play.track" must be a "Track" instance. 

回答

2

試試這個:

play.track = Track.objects.get(pk=2) 

您需要分配軌道模型的實例,而不是僅僅的PK。

2

你只是想把它設置爲跟蹤2?

如何:

play.track = Track.objects.get(id=2) 

錯誤是告訴你,你想給它一個號的時候,其實你需要一個軌道,所以解決的辦法就是給它一個軌道。 :)

相關問題