0

テスト目的で、私の見解で以下をハードコーディングしようとしています。エラーが発生せずにこれを行うにはどうすればよいですか?

私の見解:

`def create(request): form= PlayForm(request.POST or None) if 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.
4

2 に答える 2

2

これを試して:

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

pk だけでなく、Track モデルのインスタンスを割り当てる必要があります。

于 2011-05-11T16:12:02.557 に答える
2

トラック2に設定したいだけですか?

どうですか:

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

エラーは、実際には Track が必要なときに番号を指定しようとしていることを示しているため、解決策は Track を指定することです。:)

于 2011-05-11T16:12:41.503 に答える