tôi không phải bây giờ tại sao, nhưng từ một ngày khác y bắt đầu có vấn đề khi tôi đã cố gắng để chạy các bài kiểm tra. Tôi đang sử dụng django 1.1 (yêu cầu khách hàng) và khi tôi chạy thử nghiệm whith:django: sqlite3.OperationalError: không có bảng như vậy
python manage.py test --setting=settingsTest
nó ném:
Traceback (most recent call last):
File "manage.py", line 11, in <module>
execute_manager(settings)
File "/usr/lib/pymodules/python2.6/django/core/management/__init__.py", line 362, in execute_manager
...
File "/usr/lib/pymodules/python2.6/django/db/backends/sqlite3/base.py", line 193, in execute
return Database.Cursor.execute(self, query, params)
sqlite3.OperationalError: no such table: programas_act_actividadesprograma
nhưng tôi có trong settingsTest.py
INSTALLED_APPS = (
'django.contrib.auth',
...
'site.programas_act',
...
)
và trong /var/www/site/programas_act/models.py
class ActividadesPrograma(models.Model):
...
tôi loại bỏ các tập tin có tên trong settingsTest.DATABASE_NAME và chạy:
python manage.py syncdb --setting=settingsTest
nhưng vẫn thất bại.
Nếu tôi chạy trong django shell_plus:
import settings
print settings.INSTALLED_APPS
for app in settings.INSTALLED_APPS:
print app
tôi có thể thấy ứng dụng, nhưng khi tôi chạy:
from django.db import connection
cursor = connection.cursor()
qry="""SELECT name FROM sqlite_master
WHERE type IN ('table','view') AND name NOT LIKE 'sqlite_%%'
UNION ALL
SELECT name FROM sqlite_temp_master
WHERE type IN ('table','view')
ORDER BY 1"""
cursor.execute(qry)
results = cursor.fetchall()
for tablename in results:
print tablename
tôi không thể phát hiện ra rằng tablename.
Bất cứ ai cũng có thể giúp tôi?
Cảm ơn
Điều này cũng có thể xảy ra nếu một bảng trong mô hình của bạn không được tạo bởi di chuyển của bạn. Xem: http://stackoverflow.com/a/39246325/1551116 –