在写django程序时,新添加了一个子应用,运行后在后端向数据看中添加一个数据,报错。
OperationalError at /admin/pay/payinfo/add/
no such table: pay_payinfo 注意:看这里,说没有这个表
Request Method: POST
Request URL: http:
Django Version: 3.2.8
Exception Type: OperationalError
Exception Value:
no such table: pay_payinfo
Exception Location: /home/hello/.virtualenv/helloDjango/lib/python3.9/site-packages/django/db/backends/sqlite3/base.py, line 423, in execute
Python Executable: /home/hello/.virtualenv/helloDjango/bin/python3
Python Version: 3.9.6
Python Path:
['/home/hello/work/django_test/bookTest',
'/usr/lib/python39.zip',
'/usr/lib/python3.9',
'/usr/lib/python3.9/lib-dynload',
'/home/hello/.virtualenv/helloDjango/lib/python3.9/site-packages']
仔细观察,它说“no such table: pay_payinfo”,也就是没有pay_payinfo这个表。
原因是:我们新添加了一个pay应用,内部也是用数据看,但是并没有对数据库进行新的迁移。因为django是用ORM中间层来管理和操作数据库,需要迁移。
解决方案:重新迁移一次数据文件即可
python3 manage.py makemigrations
python3 manage.py migrate
python3 manage.py runserver 重新运行即可。
|