数据库错误:没有这样的列:connect_connect.reciever_id

时间:2011-08-02 14:34:51

标签: database django

我创建了以下模型

 class ConnectToFrom(models.Model):
    person = models.ForeignKey(User, null=True)
    kiosk = models.ForeignKey(Kiosks, null=True)

 class Connect(models.Model):
    parent_id = models.ForeignKey("self", null = True, blank = True)
    sender = models.ForeignKey(ConnectToFrom, related_name='sent_messages' )
    reciever = models.ForeignKey(ConnectToFrom, related_name='received_messages')
    .
    .
    .

我无法通过管理站点访问连接以添加任何连接对象! 我不能将相同的模型引用到两个字段吗? 我无法弄清楚导致错误的确切原因。 请帮忙

追溯:

Environment:


Request Method: GET
Request URL: http://www.krisvenham.com:8000/admin/connect/connect/

Django Version: 1.3
Python Version: 2.6.6
Installed Applications:
['broadcast',
 'shastra',
 'fb_api',
 'log',
 'nties',
 'crc',
 'connect',
 'network',
 'django.contrib.auth',
 'django.contrib.contenttypes',
 'django.contrib.sessions',
 'django.contrib.sites',
 'django.contrib.messages',
 'django.contrib.admin',
 'kiosks',
 'content',
 'home',
 'dashboard',
 'trial',
 'meta',
 'oembed']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
 'django.contrib.sessions.middleware.SessionMiddleware',
 'django.middleware.csrf.CsrfViewMiddleware',
 'django.contrib.auth.middleware.AuthenticationMiddleware',
 'django.contrib.messages.middleware.MessageMiddleware')


Traceback:
File "C:\Python26\lib\site-packages\django\core\handlers\base.py" in get_response
  111.                         response = callback(request, *callback_args, **callback_kwargs)
File "C:\Python26\lib\site-packages\django\contrib\admin\options.py" in wrapper
  307.                 return self.admin_site.admin_view(view)(*args, **kwargs)
File "C:\Python26\lib\site-packages\django\utils\decorators.py" in _wrapped_view
  93.                     response = view_func(request, *args, **kwargs)
File "C:\Python26\lib\site-packages\django\views\decorators\cache.py" in _wrapped_view_func
  79.         response = view_func(request, *args, **kwargs)
File "C:\Python26\lib\site-packages\django\contrib\admin\sites.py" in inner
  197.             return view(request, *args, **kwargs)
File "C:\Python26\lib\site-packages\django\utils\decorators.py" in _wrapper
  28.             return bound_func(*args, **kwargs)
File "C:\Python26\lib\site-packages\django\utils\decorators.py" in _wrapped_view
  93.                     response = view_func(request, *args, **kwargs)
File "C:\Python26\lib\site-packages\django\utils\decorators.py" in bound_func
  24.                 return func(self, *args2, **kwargs2)
File "C:\Python26\lib\site-packages\django\contrib\admin\options.py" in changelist_view
  1159.             'selection_note': _('0 of %(cnt)s selected') % {'cnt': len(cl.result_list)},
File "C:\Python26\lib\site-packages\django\db\models\query.py" in __len__
  82.                 self._result_cache = list(self.iterator())
File "C:\Python26\lib\site-packages\django\db\models\query.py" in iterator
  273.         for row in compiler.results_iter():
File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py" in results_iter
  680.         for rows in self.execute_sql(MULTI):
File "C:\Python26\lib\site-packages\django\db\models\sql\compiler.py" in execute_sql
  735.         cursor.execute(sql, params)
File "C:\Python26\lib\site-packages\django\db\backends\util.py" in execute
  34.             return self.cursor.execute(sql, params)
File "C:\Python26\lib\site-packages\django\db\backends\sqlite3\base.py" in execute
  234.             return Database.Cursor.execute(self, query, params)

Exception Type: DatabaseError at /admin/connect/connect/
Exception Value: no such column: connect_connect.reciever_id

1 个答案:

答案 0 :(得分:5)

在最初创建receiver表后,您是否在模型中添加了connect_connect字段?如果是这样,您将不得不手动将该字段添加到您的数据库(Django不会自动将您的模型的更改与数据库同步。)

只需启动交互式数据库shell,通常为dbshell,然后添加该字段。在MySQL中,它将类似于:

ALTER TABLE connect_connect ADD COLUMN receiver_id integer;

我建议运行manage.py sqlall appname以了解Django现在如何创建db表,然后通过db shell进行必要的更改来确保db匹配它。