首页 文章

从Django模型中获取对象时出错

提问于
浏览
0

我想获取所有代码模型对象并计算返回对象的长度 . 我收到一个我无法理解的错误 .

这是我的模特

class Codes(models.Model):
    username = models.CharField(max_length=100)
    code = models.CharField(max_length=10000)
    language = models.CharField(max_length=100)

    def __str__(self):
        return self.language

我正在使用以下函数从模型中获取所有对象

def get_all_codes(lang):
    queryset = Codes.objects.filter(language = lang)
    return queryset

调用函数

all_codes_of_lang = get_all_codes(lang)

并尝试使用以下方法计算长度:

if len(all_codes_of_lang) > 0:
    print("abc")

导致此错误:

if len(all_codes_of_lang) > 0:
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 240, in __len__
    self._fetch_all()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 1074, in _fetch_all
    self._result_cache = list(self.iterator())
  File "/usr/local/lib/python2.7/site-packages/django/db/models/query.py", line 52, in __iter__
    results = compiler.execute_sql()
  File "/usr/local/lib/python2.7/site-packages/django/db/models/sql/compiler.py", line 848, in execute_sql
    cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 79, in execute
    return super(CursorDebugWrapper, self).execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
  File "/usr/local/lib/python2.7/site-packages/django/db/utils.py", line 95, in __exit__
    six.reraise(dj_exc_type, dj_exc_value, traceback)
  File "/usr/local/lib/python2.7/site-packages/django/db/backends/utils.py", line 64, in execute
    return self.cursor.execute(sql, params)
ProgrammingError: relation "submissions_codes" does not exist
LINE 1: ...odes"."code", "submissions_codes"."language" FROM "submissio...
                                                             ^

-->

2 回答

  • 0

    此问题不是 get_all_codes 函数或计算长度,而是模型和数据库之间存在同步问题 .

    运行 python manage.py makemigrationspython manage.py migrate进行修复 .

  • 0

    模型没有迁移,这就是你遇到这个错误的原因 . 运行以下命令

    • python manage.py makemigrations

    • python manage.py migrate

相关问题