_foreign_keys ошибка с Камелот - PullRequest
0 голосов
/ 05 мая 2011

Я попробовал Camelot 10.07.02-c2-4build1 с SQLAlchemy 0.6.4-3 из репозиториев Ubuntu 11.04, и я получаю следующую трассировку стека, когда пытаюсь сослаться на внешний ключ в табличном представлении:

ERROR:camelot.view.model_thread.signal_slot_model_thread:exception caught in model thread while executing get_columns -> QueryTableProxy.setColumns
Traceback (most recent call last):
  File "/usr/lib/python2.7/dist-packages/camelot/view/model_thread/signal_slot_model_thread.py", line 31, in execute
    result = self._request()
  File "/usr/lib/python2.7/dist-packages/camelot/view/proxy/collection_proxy.py", line 272, in get_columns
    self._columns = columns_getter()
  File "/usr/lib/python2.7/dist-packages/camelot/view/model_thread/__init__.py", line 56, in wrapper
    return original_function( *args, **kwargs )
  File "/usr/lib/python2.7/dist-packages/camelot/admin/object_admin.py", line 418, in get_columns
    for field in self.list_display]
  File "/usr/lib/python2.7/dist-packages/camelot/view/model_thread/__init__.py", line 56, in wrapper
    return original_function( *args, **kwargs )
  File "/usr/lib/python2.7/dist-packages/camelot/view/elixir_admin.py", line 198, in get_field_attributes
    foreign_keys = list(property._foreign_keys)
AttributeError: 'RelationshipProperty' object has no attribute '_foreign_keys'

Для моего кода важно следующее:

class Customer(Entity):
    name = Field(Unicode(200))
    packages = OneToMany("Package")

    class Admin(EntityAdmin):
        list_display = ['name']

class Package(Entity):
    interval_months = Field(Integer)
    customer = ManyToOne("Customer")

    class Admin(EntityAdmin):    
        list_display = ['interval_months', 'customers'] # here is the error

Поиск дал мне подсказку в списке рассылки , но я не совсем понимаю, как я могу решить эту проблему.

1 Ответ

0 голосов
/ 06 мая 2011

Версия SQLAlchemy изменила API, который использует Camelot, поэтому необходимо обновить Camelot.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...