从Django模型获取对象时出错

从Django模型获取对象时出错,django,postgresql,django-models,Django,Postgresql,Django Models,我想获取所有代码模型对象,并计算返回对象的长度。我犯了一个我无法理解的错误 这是我的模型 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): retu

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

这是我的模型

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...
                                                             ^

-->

此问题与
get_all_code
功能或计算长度无关,而是与模型和数据库之间的同步问题有关


运行
python manage.py makemigrations
python manage.py
migrate to fix

模型没有迁移,这就是您出现此错误的原因。 运行以下命令

  • python manage.py makemigrations
  • python manage.py迁移

您的模型与数据库不同步。运行
python manage.py makemigrations
python manage.py migrate
进行修复。