【问题标题】:not able to find the variables sqlite for django project [closed]无法找到 django 项目的变量 sqlite [关闭]
【发布时间】:2023-03-04 18:26:02
【问题描述】:

我正在 PyCharm 中创建演示 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

【问题讨论】:

  • 错误信息有什么令人困惑的地方?在定义之前,你不能在控制台中使用它。
  • 我已经定义了它,这就是我问这个问题的原因,我创建了 "b = Album()" ,这就是为什么我可以通过 "Album.objects.all( )"
  • 在哪里你定义的?控制台说你没有。
  • 因为,你没有定义b
  • 是的。为什么您认为控制台会知道您在上一个会话中编写的内容?

标签: python django sqlite


【解决方案1】:

这个问题的根源是你不了解shell是什么。

基本上,django shell 可以让你访问你的模型,但它不是一个普通的 python shell。您不能通过执行以下操作来创建模型实例:

b = Album.objects.all()[0]

您所做的是将模型的第一个实例保存在 python 变量中。

如果您确实想创建一个新模型实例,您可以使用模型的 create 方法。Album.objects.create()(可能带有一些参数)。

我建议您返回 Django 文档并关注 Django Docs tutorial

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-20
    • 2015-05-19
    • 1970-01-01
    • 2014-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多