Python / Django - 无法为对象提供刚刚创建的外键

时间:2013-07-06 16:58:10

标签: python django

我正在扩展基本的django民意调查网站教程,我已经制作了一个允许用户添加自己的民意调查的视图。添加投票有效,添加选项则不然。显然这是因为民意调查尚未“存在”,并且不能使用p.id.但是,p.id在重定向底部的浏览器时有效。任何想法?

def save(request):
    p = Poll(question=request.POST['question'], pub_date=timezone.now())
    p.save()
    c1 = Choice(poll=p.id, choice_text=request.POST['c1'], votes=0)
    c2 = Choice(poll=p.id, choice_text=request.POST['c2'], votes=0)
    c3 = Choice(poll=p.id, choice_text=request.POST['c3'], votes=0)
    c4 = Choice(poll=p.id, choice_text=request.POST['c4'], votes=0)
    c1.save()
    c2.save()
    c3.save()
    c4.save()
    return HttpResponseRedirect(reverse('detail', args=(p.id,)))

1 个答案:

答案 0 :(得分:1)

没关系,我明白了。选择不需要id,而是需要对象。 通过改变来解决:

c1 = Choice(poll=p.id, choice_text=request.POST['c1'], votes=0)

c1 = Choice(poll=p, choice_text=request.POST['c1'], votes=0)