Форум сайта python.su
Ну вторая ошибка понятно когда возникает. И это естественно. А вот когда первая?
Офлайн
4kpt_IIIПервая когда называю класс Users в комментариях. А поскольку они наследуют класс Base, который является один и тот же:
Ну вторая ошибка понятно когда возникает. И это естественно. А вот когда первая?
Отредактировано lightarhont (Апрель 15, 2015 22:32:34)
Офлайн
lightarhont
Первая когда называю класс Users в комментариях. А поскольку они наследуют класс Base, который является один и тот же:
lightarhont
Base говорит: я вижу два класса Users как мне поступать?
Офлайн
Может Вам это нужно:
from testproject.models.manager import rbac class Users(rbac.Users, Base):
Отредактировано 4kpt_III (Апрель 15, 2015 22:43:06)
Офлайн
4kpt_IIIСуть в том, что это приложение Pyramid, пока реализованы две части:
В каких комментариях? Я Вас не понимаю…
Отредактировано lightarhont (Апрель 15, 2015 22:53:05)
Офлайн
from testproject.models.manager import rbac class Users(rbac.Users, Base):
Офлайн
4kpt_IIIЭто не правильно, поскольку нужно наследовать “голую” схему без функций-методов(__init__ и прочие). Т.е. class Users(SUsers, Base)
Это не работает?
Отредактировано lightarhont (Апрель 15, 2015 23:01:11)
Офлайн
4kpt_III
теперь я тоже понял
lightarhont
а что будет если в абстрактных классах указывать связь на абстрактный класс?
relationship("SUsers")
Офлайн
Я наконец-таки понял, что Вы хотите сделать. Самый простой вариант - использовать фиксированный префикс, как я написал выше. Второй вариант значительно хардкорнее. Теперь я его не рекомендую.
Офлайн
bismigalisБудет ошибка
а что будет если в абстрактных классах указывать связь на абстрактный класс?
2015-04-15 20:21:13,447 ERROR Exception at http://testproject.python/manager/options/control/users
traceback url: http://testproject.python/_debug_toolbar/exception?token=622760435c7864625c7830655c7838395c786261355c7861625c7830635e27&tb=140470152488848
Traceback (most recent call last):
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/ext/declarative/clsregistry.py”, line 271, in __call__
x = eval(self.arg, globals(), self._dict)
File “<string>”, line 1, in <module>
NameError: name ‘SPermissions’ is not defined
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/pyramid_debugtoolbar-2.0.2-py3.3.egg/pyramid_debugtoolbar/toolbar.py”, line 172, in toolbar_tween
response = _handler(request)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/pyramid_debugtoolbar-2.0.2-py3.3.egg/pyramid_debugtoolbar/panels/performance.py”, line 55, in resource_timer_handler
result = handler(request)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/pyramid/tweens.py”, line 21, in excview_tween
response = handler(request)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/pyramid/router.py”, line 163, in handle_request
response = view_callable(context, request)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/pyramid/config/views.py”, line 596, in __call__
return view(context, request)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/pyramid/config/views.py”, line 329, in attr_view
return view(context, request)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/pyramid/config/views.py”, line 305, in predicate_wrapper
return view(context, request)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/pyramid/config/views.py”, line 355, in rendered_view
result = view(context, request)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/pyramid/config/views.py”, line 472, in _class_requestonly_view
inst = view(request)
File “/mnt/webserver/pythonproject/testproject/testproject/views/manager/users.py”, line 139, in __init__
Manager.__init__(self, request, 0)
File “/mnt/webserver/pythonproject/testproject/testproject/views/manager/common.py”, line 59, in __init__
user = get_user2(request.authenticated_userid)
File “/mnt/webserver/pythonproject/testproject/testproject/models/manager/rbac/users_func.py”, line 7, in get_user2
return DBSession.query(Users).filter(Users.id == itemid).one()
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/scoping.py”, line 150, in do
return getattr(self.registry(), name)(*args, **kwargs)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/session.py”, line 1165, in query
return self._query_cls(entities, self, **kwargs)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/query.py”, line 108, in __init__
self._set_entities(entities)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/query.py”, line 118, in _set_entities
self._set_entity_selectables(self._entities)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/query.py”, line 151, in _set_entity_selectables
ent.setup_entity(*d)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/query.py”, line 3036, in setup_entity
self._with_polymorphic = ext_info.with_polymorphic_mappers
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/util/langhelpers.py”, line 725, in __get__
obj.__dict__ = result = self.fget(obj)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/mapper.py”, line 1877, in _with_polymorphic_mappers
configure_mappers()
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/mapper.py”, line 2589, in configure_mappers
mapper._post_configure_properties()
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/mapper.py”, line 1694, in _post_configure_properties
prop.init()
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/interfaces.py”, line 144, in init
self.do_init()
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/relationships.py”, line 1549, in do_init
self._process_dependent_arguments()
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/relationships.py”, line 1605, in _process_dependent_arguments
self.target = self.mapper.mapped_table
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/util/langhelpers.py”, line 725, in __get__
obj.__dict__ = result = self.fget(obj)
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/orm/relationships.py”, line 1522, in mapper
argument = self.argument()
File “/home/mikhail/.virtualenvs/testproject/lib/python3.3/site-packages/sqlalchemy/ext/declarative/clsregistry.py”, line 283, in __call__
(self.prop.parent, self.arg, n.args, self.cls)
sqlalchemy.exc.InvalidRequestError: When initializing mapper Mapper|PermissionsRoles|perms_roles, expression ‘SPermissions’ failed to locate a name (“name ‘SPermissions’ is not defined”). If this is a class name, consider adding this relationship() to the <class ‘testproject.models.manager.rbac.PermissionsRoles’> class after both dependent classes have been defined.
Офлайн