我正在PyCharm中创建demo django项目。所以我一直关闭并重新打开PyCharm。但是我注意到,一旦我在PyCharm中重新打开我的django项目,并通过python manage.py shell
转到sqlite命令提示符,并查找以前创建的模型,我就会出现以下错误
>>> b.id
Traceback (most recent call last):
File "<console>", line 1, in <module>
NameError: name 'b' is not defined
但是当我执行命令
时 Album.objects.all()
我确实了解了以前创建的模型的详细信息
>>> Album.objects.all()
<QuerySet [<Album: yaad: Sonu Nigam>, <Album: : >, <Album: : Back Street Boys>, <Album: InComplete: Back Street Boys>, <Album: In The End: Linkin Park>]>
这是一种任何缺陷,或者只是我看到这种情况,或者我错过了什么?
Python 3.6 django 1.11 pycharm 2017.2.3
答案 0 :(得分:3)
这个问题的根源是你不明白shell是什么。
基本上,django shell允许您访问模型,但不是普通的python shell。您无法通过执行以下操作来创建模型实例:
b = Album.objects.all()[0]
你所做的是将你的模型的第一个实例保存在python变量中。
如果您想创建新的模型实例,可以使用模型的create方法。Album.objects.create()
(可能带有一些参数)。
我建议您返回Django文档并按照Django Docs tutorial
进行操作