【问题标题】:Programming error column does not exist编程错误栏不存在
【发布时间】:2017-02-16 21:49:00
【问题描述】:

模型.py

class PlansToLodge(models.Model):
sm_sequence = models.IntegerField()
sm_year = models.IntegerField()    
location = models.TextField(blank=True, null=True)
car_number = models.CharField(max_length=100, blank=True, null=True)
client_or_owner = models.TextField(blank=True, null=True)
date_received = models.DateField(blank=True, null=True)
date_lodged = models.DateField(blank=True, null=True)
remarks = models.TextField(blank=True, null=True)
sent_or_received = models.TextField(blank=True, null=True)    
receipt_number = models.TextField(blank=True, null=True)

class Meta:
    managed = False
    db_table = 'plans_to_lodge'
    unique_together = (('sm_sequence', 'sm_year'),)

view.py

def searchPlanInfo(request):
logger = logging.getLogger(__name__)
if request.user.is_authenticated():
    if request.method =='POST':
        if request.POST['smYear'] is not '':
            searchPlan = request.POST['smYear']
            logger.error('lets see here')
            foundPlan = PlansToLodge.objects.filter(sm_year=searchPlan)
            logger.error(foundPlan[0])

            context = {'parcel_list': foundPlan}
            return render(request,'parcelmanager/index2.html',context)
        return HttpResponse("once again")

追溯

追溯:

File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\core\handlers\base.py" in get_response
  132.                     response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\Sites\Landregistry\surveyplanmanager\views.py" in searchPlanInfo
  39.               logger.error(foundPlan[0])
File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\db\models\query.py" in __getitem__
  201.         return list(qs)[0]
File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\db\models\query.py" in __iter__
  162.         self._fetch_all()
File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\db\models\query.py" in _fetch_all
  965.             self._result_cache = list(self.iterator())
File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\db\models\query.py" in iterator
  238.         results = compiler.execute_sql()
File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql
  829.             cursor.execute(sql, params)
File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\db\backends\utils.py" in execute
  79.             return super(CursorDebugWrapper, self).execute(sql, params)
File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\db\backends\utils.py" in execute
  64.                 return self.cursor.execute(sql, params)
File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\db\utils.py" in __exit__
  97.                 six.reraise(dj_exc_type, dj_exc_value, traceback)
File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\utils\six.py" in reraise
  658.             raise value.with_traceback(tb)
File "C:\Users\yfevrier\Envs\landregtry1\lib\site-packages\django\db\backends\utils.py" in execute
  64.                 return self.cursor.execute(sql, params)

Exception Type: ProgrammingError at /surveyplanmanager/searchPlanInfo/
Exception Value: column plans_to_lodge.id does not exist
LINE 1: SELECT "plans_to_lodge"."id", "plans_to_lodge"."sm_sequence"...
               ^

现在在我使用 sqlite 之前,但我们进入了我们将使用 Postgresql 的数据库,我知道在 sqlite 中它创建了这些“id”字段,但我不知道为什么它为 postgresql 执行此操作 ive 已迁移,所有这些都不应该发生

【问题讨论】:

    标签: python django postgresql object models


    【解决方案1】:

    其实这个错误是因为你的数据库没有迁移

    所以运行以下命令来迁移数据库

    python manage.py migrate
    

    如果没有运行,则运行以下命令

    python manage.py makemigrations
    python manage.py migrate
    

    【讨论】:

    • 我做了,它告诉我的只是没有检测到变化。当我做 python manage.py showmigration 时。我所有的应用程序都有初始迁移。可能发生的情况是我从不同的数据库导入了一个表,但我无法迁移到它。它告诉我它已经存在所以我伪造了它。因为它有我测试所需的数据
    • 所以我没有管理桌子!并将其改回 True 并且迁移通过但它仍然显示相同的错误所以我现在尝试做的是 sqlmigrate 它没有显示任何内容但我可以 sqlmigrate 初始迁移
    • 我已经完成了迁移,我认为一切都已同步。我要做的是做一个inspectdb,然后从文件夹中删除我原来的迁移然后makemigration(它做了迁移),它仍然向我显示同样的错误
    • 你是对的,我尝试了另一个表并没有遇到该问题,但该表在我迁移之前就存在,因为它包含我想用于测试的信息
    猜你喜欢
    • 2016-01-19
    • 2019-08-05
    • 2022-07-08
    • 2015-06-01
    • 1970-01-01
    • 2017-05-30
    • 2021-10-26
    • 2019-12-10
    • 2019-12-03
    相关资源
    最近更新 更多