尝试访问数据库时,无法访问该列。我已经多次运行了初始化数据库脚本。这是代码:
视图
from .models import Session, Admin
@view_config(route_name='admin', renderer='templates/admin.pt')
def admin(request):
session = Session()
user = authenticated_userid(request)
admin = bool(session.query(Admin).filter_by(username = user).first())
message = ''
if admin:
if 'form.submitted' in request.params:
session.add(Admin(request.params['admin']))
session.commit()
message = "%s has been added as an Admin!" % request.params['admin']
return dict(url=request.route_url('admin'),
message = message,
)
return dict(message = message)
else:
return HTTPForbidden()
楷模
class Admin(Base):
__tablename__='admins'
__table_args__={
'mysql_engine':'InnoDB',
'mysql_charset':'utf8',
}
username = Column(String(255), ForeignKey('users.username'), primary_key=True)
def __init(self, user):
self.username = user
最佳答案
数据库脚本无法在现有表上添加列。如果您在运行脚本后修改或添加了该列,那么问题就出在这里。
您有三种可能性:
删除数据库,然后让脚本以正确的方式重新创建它
运行sql手动添加列。
查看Alembic,它可以帮助您自动执行此操作。
关于python - Pyramid :OperationalError 1054,“字段列表”中的未知列“XX”,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11279783/