我有一个问题,为了解决它,我试着进入外壳,但我找不到解决方案,所以我希望你能帮助我。我正在导入包含id和图像URL的模型图像,但由于此错误,我无法获取它。 守则:
from recipes_database.models import Images
Images.objects.all()
这里是错误:
Traceback (most recent call last): File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params) File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\backends\sqlite3\base.py", line 413, in execute
return Database.Cursor.execute(self, query, params) sqlite3.OperationalError: no such column: Images.id
The above exception was the direct cause of the following exception:
Traceback (most recent call last): File "<console>", line 1, in <module> File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\models\query.py", line 263, in __repr__
data = list(self[:REPR_OUTPUT_SIZE + 1]) File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\models\query.py", line 269, in __len__
self._fetch_all() File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\models\query.py", line 1303, in _fetch_all
self._result_cache = list(self._iterable_class(self)) File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\models\query.py", line 53, in __iter__
results = compiler.execute_sql(chunked_fetch=self.chunked_fetch, chunk_size=self.chunk_size) File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\models\sql\compiler.py", line 1154, in execute_sql
cursor.execute(sql, params) File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\backends\utils.py", line 98, in execute
return super().execute(sql, params) File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\backends\utils.py", line 66, in execute
return self._execute_with_wrappers(sql, params, many=False, executor=self._execute) File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\backends\utils.py", line 75, in _execute_with_wrappers
return executor(sql, params, many, context) File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params) File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\utils.py", line 90, in __exit__
raise dj_exc_value.with_traceback(traceback) from exc_value File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\backends\utils.py", line 84, in _execute
return self.cursor.execute(sql, params) File "F:\Developement\Projects\WhatToCookWeb\venv\lib\site-packages\django\db\backends\sqlite3\base.py", line 413, in execute
return Database.Cursor.execute(self, query, params) django.db.utils.OperationalError: no such column: Images.id
但是,当我用我的其他模型做同样的事情时,它工作了,我想知道这次有什么不同。这是我的图像模型:
class Images(models.Model):
# Field name made lowercase.
rezept_id = models.ForeignKey(
'Rezepte', models.DO_NOTHING, db_column='Rezept_ID', blank=True, null=True)
# Field name made lowercase.
image_url = models.CharField(
db_column='Image_URL', blank=True, null=True, max_length=1000)
class Meta:
managed = False
db_table = 'Images'
我认为Django使用了一个错误的查询,因为没有Images.id只是Images.recipe\u id。希望您能帮助我谢谢
Djangoautomatically adds a primary key如果您自己没有指定一个。事实上,正如documentation所说:
在您的模型中,您没有设置主键,因此Django将自动添加一个额外的字段
id
,因此这也将在查询中使用例如,如果
image_url
是主键,则可以将其指定为:在} [Django-doc]更有意义,因为这是一个具有唯一性约束的
rezept
是主键的情况下,这也意味着它是唯一的,在这种情况下,将它设为^{ForeignKey
,而且它对反向关系有一些影响:相关问题 更多 >
编程相关推荐