choice_set confusion(Django教程)

时间:2012-06-28 18:16:31

标签: django

我已到达Django tutorial第一页的末尾。我尝试了一个快速的实验,因为它没有用,我很困惑。继教程之后,我有一个变量p

p = Poll.objects.get(pk=1)

我没有像教程指示的那样使用p.choice_set.create(choice='Not much', votes=0)创建投票,而是尝试了:

x = Choice(choice='Not much', votes=0, poll=p)

完成这项工作之后,我会认为p.choice_set.all()会返回一个不仅仅是空列表的内容。但它 返回一个空列表。

(但是,如果我尝试x.poll,那么我会得到<Poll: What's up?>,就像我预期的那样,所以这种关系只会以一种方式运作。)

我确信有一个很好的理由为什么这不起作用,即使它看起来应该如此! (请记住我没有数据库经验)

欢迎任何想法

1 个答案:

答案 0 :(得分:3)

x = Choice(choice='Not much', votes=0, poll=p)创建Choice模型的实例,但尚未保存到数据库中。 p.choice_set.all()在数据库中查询与给定轮询相关的选项。由于x未保存到数据库,因此无法找到。