【发布时间】:2018-04-15 19:41:18
【问题描述】:
我无法显示我新创建的表 (blog_sp500_post_noid_sorted)。每当我尝试在管理页面下打开表格时,都会收到以下错误消息:
OperationalError at /admin/blog/sp500_post_noid_sorted/
no such column: blog_sp500_post_noid_sorted.id
Request Method: GET
Request URL: http://127.0.0.1:8000/admin/blog/sp500_post_noid_sorted/
Django Version: 1.8
Exception Type: OperationalError
Exception Value:
no such column: blog_sp500_post_noid_sorted.id
Exception Location: C:\Python27\lib\site-packages\django\db\backends\sqlite3\base.py in execute, line 318
Python Executable: C:\Python27\python.exe
Python Version: 2.7.9
Python Path:
['C:\\Python27\\djangogirls\\mysite',
'C:\\Windows\\system32\\python27.zip',
'C:\\Python27\\DLLs',
'C:\\Python27\\lib',
'C:\\Python27\\lib\\plat-win',
'C:\\Python27\\lib\\lib-tk',
'C:\\Python27',
'C:\\Python27\\lib\\site-packages']
Server time: Sun, 15 Apr 2018 11:30:20 -0700
该表是通过使用 SQLite 命令从数据库中的现有表中插入列而创建的。 我注意到在 Django 中总是为模型创建一个“id”列。但是,使用 SQLite 命令创建的表没有这样的 id 列。 Django有什么办法可以忽略id列的缺失还是我必须手动创建一个id列?
我在通过 SQLite 命令创建表后添加了以下模型:
class sp500_post_NoID_sorted(models.Model):
Day = models.DateField(blank=False, default=datetime.date.today().strftime('%Y-%m-%d'))
Symbol = models.CharField(max_length=20, default='N/A')
LastPrice = models.CharField(max_length=30, default='N/A')
FiftyTwoWkChg = models.CharField(max_length=30, default='N/A')
FiftyTwoWkHi = models.CharField(max_length=30, default='N/A')
FiftyTwoWkLo = models.CharField(max_length=30, default='N/A')
DivYild = models.CharField(max_length=30, default='N/A')
TrailPE = models.CharField(max_length=30, default='N/A')
ForwardPE = models.CharField(max_length=30, default='N/A')
PEG_Ratio = models.CharField(max_length=30, default='N/A')
PpS = models.CharField(max_length=30, default='N/A')
PpB = models.CharField(max_length=30, default='N/A')
Market_Cap = models.CharField(max_length=30, default='N/A')
Free_Cash_Flow = models.CharField(max_length=30, default='N/A')
Market_per_CashFlow = models.CharField(max_length=30, default='N/A')
Enterprise_per_EBITDA = models.CharField(max_length=30, default='N/A')
Name = models.CharField(max_length=50, default='N/A')
【问题讨论】:
-
您的型号是如何指定的?它不需要 id 字段,但确实需要主键
-
发布您的 models.py,我可以尝试进一步提供帮助。
标签: django sqlite django-models