我已到达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?>
,就像我预期的那样,所以这种关系只会以一种方式运作。)
我确信有一个很好的理由为什么这不起作用,即使它看起来应该如此! (请记住我没有数据库经验)
欢迎任何想法
答案 0 :(得分:3)
x = Choice(choice='Not much', votes=0, poll=p)
创建Choice
模型的实例,但尚未保存到数据库中。 p.choice_set.all()
在数据库中查询与给定轮询相关的选项。由于x
未保存到数据库,因此无法找到。