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)

您需要分配 Track 模型的实例,而不仅仅是 pk。

于 2011-05-11T16:12:02.557 回答
2

您只想将其设置为轨道 2?

怎么样:

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

该错误告诉您您正在尝试给它一个数字,而实际上您需要一个 Track,因此解决方案是给它一个 Track。:)

于 2011-05-11T16:12:41.503 回答