我刚刚开始使用django创建自己的应用教程(创建一个民意调查)我稍微偏离,因为我想使用我自己的数据库模型创建一个应用程序。
在教程中它说
但我无法看到它提到你如何覆盖这种行为?我已经将我的模型定义为
from django.db import models
# Create your models here.
class Channels(models.Model):
channelid = models.IntegerField()
channelid.primary_key = True
channelname = models.CharField(max_length=50)
现在,当我进入shell时,这就是我得到的
>>> from tvlistings.models import *
>>> Channels.objects.all()
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "C:\Python26\lib\site-packages\django\db\models\query.py", line 67, in __
repr__
data = list(self[:REPR_OUTPUT_SIZE + 1])
File "C:\Python26\lib\site-packages\django\db\models\query.py", line 82, in __
len__
self._result_cache.extend(list(self._iter))
File "C:\Python26\lib\site-packages\django\db\models\query.py", line 271, in i
terator
for row in compiler.results_iter():
File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 67
7, in results_iter
for rows in self.execute_sql(MULTI):
File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py", line 73
2, in execute_sql
cursor.execute(sql, params)
File "C:\Python26\lib\site-packages\django\db\backends\util.py", line 15, in e
xecute
return self.cursor.execute(sql, params)
File "C:\Python26\lib\site-packages\django\db\backends\mysql\base.py", line 86
, in execute
return self.cursor.execute(query, args)
File "C:\Python26\lib\site-packages\MySQLdb\cursors.py", line 166, in execute
self.errorhandler(self, exc, value)
File "C:\Python26\lib\site-packages\MySQLdb\connections.py", line 35, in defau
lterrorhandler
raise errorclass, errorvalue
DatabaseError: (1146, "Table 'tvlistings.tvlistings_channels' doesn't exist")
显然它无法找到表tvlistings_channels,因为它实际上称为频道。那么我该如何更改默认值?
答案 0 :(得分:3)
您可以通过使用inner Meta
class
db_table
允许您重命名表名称Meta
类中,仅在模型本身中)答案 1 :(得分:1)
在尝试自定义内容之前,您应该尝试按照自己的方式完成整个教程。所有这些都涵盖在实际文档中,但最好先深入了解事物,然后再深入了解。
FWIW,以下是defining your own primary key和specifying a table name上的文档。但实际上,请先按照书面编写教程。