[英]raise sa_exc.ArgumentError( sqlalchemy.exc.ArgumentError: Mapper mapped class car->car could not assemble any primary key columns for mapped table
I am busy with learning turbogears, which i find a very good and easy to work framework in compare with Django, that gave me many problems with the imports.我正忙于学习涡轮齿轮,与 Django 相比,我发现它是一个非常好且易于工作的框架,这给我带来了很多导入问题。 i have a.py file which i wrote a code, but doesn't seem to be able to assemble any primary key columns for my mapped table
我有一个.py 文件,我编写了一个代码,但似乎无法为我的映射表组装任何主键列
raise sa_exc.ArgumentError(
sqlalchemy.exc.ArgumentError: Mapper mapped class car->car could not assemble any primary key columns for mapped table 'car'
from unicodedata import name
from sqlalchemy import Column
from sqlalchemy.types import Integer, Unicode
from dataproj.model import DeclarativeBase
class car(DeclarativeBase):
__tablename__ = 'car'
carid = Column(Integer, Primary_key = True)
make = Column(Unicode(40), nullable = False, default = '')
model = Column(Unicode(40), nullable = False, default = '')
year = Column(Integer, nullable = False, default = '')
transmission = Column(Unicode(10), nullable = False, default = '')
Have tried it with a different format like de sqlalchemy document says but its still not working this is what i typed:已经尝试过使用不同的格式,例如 de sqlalchemy 文档说,但它仍然无法正常工作这是我输入的内容:
from unicodedata import name
from sqlalchemy import PrimaryKeyConstraint
from sqlalchemy import Column
from sqlalchemy.types import Integer, Unicode
from dataproj.model import DeclarativeBase
class car(DeclarativeBase):
__tablename__ = 'car'
Column('car_id', Integer, Primary_key = True)
Column('make', Unicode(40), nullable = False, default = '')
Column('model', Unicode(40), nullable = False, default = '')
Column('year', Integer, nullable = False, default = '')
Column('transmission', Unicode(10), nullable = False, default = '')
and this is the traceback:这是回溯:
Traceback (most recent call last):
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/wsgiapp.py", line 82, in __call__
response = self.wrapped_dispatch(controller, environ, context)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/appwrappers/errorpage.py", line 64, in __call__
resp = self.next_handler(controller, environ, context)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/appwrappers/transaction_manager.py", line 107, in __call__
reraise(*exc_info)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/_compat.py", line 87, in reraise
raise value
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/appwrappers/transaction_manager.py", line 79, in __call__
response = self.next_handler(controller, environ, context)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/appwrappers/caching.py", line 54, in __call__
return self.next_handler(controller, environ, context)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/appwrappers/session.py", line 71, in __call__
response = self.next_handler(controller, environ, context)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/appwrappers/identity.py", line 47, in __call__
return self.next_handler(controller, environ, context)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/appwrappers/i18n.py", line 71, in __call__
return self.next_handler(controller, environ, context)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/wsgiapp.py", line 243, in _dispatch
return controller(environ, context)
File "/Users/alexandra/TurboGearsProjects/dataproj/dataproj/lib/base.py", line 27, in __call__
return TGController.__call__(self, environ, context)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/controllers/dispatcher.py", line 118, in __call__
response = self._perform_call(context)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/controllers/dispatcher.py", line 107, in _perform_call
r = self._call(action, params, remainder=remainder, context=context)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/controllers/decoratedcontroller.py", line 129, in _call
output = controller_caller(context_config, bound_controller_callable, remainder, params)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/controllers/decoration.py", line 21, in _decorated_controller_caller
return application_controller_caller(tg_config, controller, remainder, params)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tgext/debugbar/sections/timing.py", line 77, in wrapped_controller
result = profiler.runcall(controller, *args, **kw)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/cProfile.py", line 109, in runcall
return func(*args, **kw)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/tg/configurator/components/dispatch.py", line 114, in _call_controller
return controller(*remainder, **params)
File "/Users/alexandra/TurboGearsProjects/dataproj/dataproj/controllers/root.py", line 127, in showgrid
data = DBSession.query(car).all()
File "<string>", line 2, in query
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/sqlalchemy/orm/session.py", line 2159, in query
return self._query_cls(entities, self, **kwargs)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 180, in __init__
self._set_entities(entities)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 187, in _set_entities
self._raw_columns = [
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/sqlalchemy/orm/query.py", line 188, in <listcomp>
coercions.expect(
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py", line 188, in expect
resolved = impl._literal_coercion(
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py", line 401, in _literal_coercion
self._raise_for_expected(element, argname)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py", line 437, in _raise_for_expected
return super(_SelectIsNotFrom, self)._raise_for_expected(
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/sqlalchemy/sql/coercions.py", line 283, in _raise_for_expected
util.raise_(exc.ArgumentError(msg, code=code), replace_context=err)
File "/Users/alexandra/TurboGearsProjects/tgenv/lib/python3.10/site-packages/sqlalchemy/util/compat.py", line 208, in raise_
raise exception
sqlalchemy.exc.ArgumentError: Column expression or FROM clause expected, got <class 'dataproj.model.car.car'>.
In your definition of the carid
column you have a casing typo - the argument name needs to be all lower case primary_key=True
.在您对
carid
列的定义中,您有一个大小写错误 - 参数名称必须全部为小写primary_key=True
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.