我目前正在尝试官方Django教程民意调查应用程序。它要求我为一个民意调查应用程序创建问题,然后再创建答案选择。我在创建问题时犯了一个错误,不知何故创建了一个空的查询集,我相信它将空问题的主键分别设置为1和2。我接着创建了问题3、4和5。我意识到空格在那里,我试图删除这两个问题。在运行delete()命令后,我删除了它们。我想主键会被删除,所有东西都会滑回原位。我的问题是谁发明了python,仍然是pk=3。
现在我不知道该怎么办。我应该创建一个答案选择的主键id 3,并运行它吗?或者我应该想办法重新分配答案选项。
我问过Django论坛网站,有人推荐我运行这个命令
`[(q.id,q.question_text)for q in Question.objects.all()]'
此命令输出:
>>> [(q.id, q.question_text) for q in Question.objects.all()]
[(3, 'Who invented python?'), (4, 'This question was changed by dot notation on the object.'), (5, 'Who invented Django?')]
>>> clear
我采取了哪些步骤来解决问题?
- 我已经检查了教程网站上的说明,以更新空槽,我已经寻找一种方法来添加一个问题回来,使它将采取主键槽一,但-我只发现,我的方式将创建另一个问题与主键为下一个顺序。
- 我看了状态溢出的文章,他们说不要触摸主键。
- 我也问过Django论坛关于不和谐的问题。
我在期待什么
我希望有一个解决方案,其中我可以有一个问题,它的答案选择占用pk=1和2插槽,即使有pk=3和4的问题等等。
1条答案
按热度按时间r6vfmomb1#
如果您必须这样做,下面的代码可以实现您的需求,但会影响性能。