【问题标题】:I am trying to get data from database using python Django but got an error我正在尝试使用 python Django 从数据库中获取数据,但出现错误
【发布时间】:2022-01-18 05:28:40
【问题描述】:

大家好,我正在尝试从数据库中获取数据,但是当我尝试从 db 中获取单个数据时会出错,如下所示

wahid = Webapp.objects.get(title="Ecommerce Website")
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "C:\Users\wahid\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\manager.py", line 85, in manager_method
    return getattr(self.get_queryset(), name)(*args, **kwargs)
  File "C:\Users\wahid\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\query.py", line 418, in get
    clone = self._chain() if self.query.combinator else self.filter(*args, **kwargs)
  File "C:\Users\wahid\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\query.py", line 942, in filter
    return self._filter_or_exclude(False, *args, **kwargs)
  File "C:\Users\wahid\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\query.py", line 962, in _filter_or_exclude
    clone._filter_or_exclude_inplace(negate, *args, **kwargs)
  File "C:\Users\wahid\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\query.py", line 969, in _filter_or_exclude_inplace
    self._query.add_q(Q(*args, **kwargs))
  File "C:\Users\wahid\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\sql\query.py", line 1358, in add_q
    clause, _ = self._add_q(q_object, self.used_aliases)
  File "C:\Users\wahid\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\sql\query.py", line 1377, in _add_q
    child_clause, needed_inner = self.build_filter(
  File "C:\Users\wahid\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\sql\query.py", line 1258, in build_filter
    lookups, parts, reffed_expression = self.solve_lookup_type(arg)
  File "C:\Users\wahid\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\sql\query.py", line 1084, in solve_lookup_type
    _, field, _, lookup_parts = self.names_to_path(lookup_splitted, self.get_meta())
  File "C:\Users\wahid\AppData\Local\Programs\Python\Python39\lib\site-packages\django\db\models\sql\query.py", line 1481, in names_to_path
    raise FieldError("Cannot resolve keyword '%s' into field. "
django.core.exceptions.FieldError: Cannot resolve keyword 'title' into field. Choices are: created, demo_link, description, id, review, source_link, tags, tiltle, vote_ratio, vote_total

It will work only on getting all data from db as shown in image

【问题讨论】:

  • 模型字段被命名为“tiltle”而不是“title”?
  • 你的 Webapp 模型是否包含 title 属性
  • 非常感谢,这是一个拼写错误,现在已经解决了

标签: django django-models django-forms django-database django-errors


【解决方案1】:

有一个拼写错误, 您已经在模型中创建了字段名称“title”,但是您试图在 get 查询中获取“title

此外,如果有多个记录具有 title="Ecommerce Website"

,则使用 get 查询可能会引发错误

你可以使用

 Webapp.objects.filter(title="Ecommerce Website")

【讨论】:

  • 是的,是拼写错误,非常感谢
【解决方案2】:

你应该在你的模型中重命名标题字段,你似乎输入了错误的标题字段名称

'tiltle' 必须是模型中的'title'

【讨论】:

  • 是的,我正确地重命名了标题字段,它的工作谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-06-23
  • 1970-01-01
  • 2016-05-12
  • 2019-09-03
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多