2014-11-23 1 views
2

Я пытаюсь сформулировать datamigration для одного из моих приложений. Я использую систему репутации, упомянутую здесь - django-reputationДоступ к методам диспетчера моделей в datamigration

в моем forward методе, у меня есть следующий код -

orm['reputation.reputation'].objects.log_reputation_action(user = user_x, originating_user = user_y, action_value = 10, target_object = sample_obj) 

, но при выполнении миграции, я получаю следующее сообщение об ошибке -

AttributeError: 'Manager' object has no attribute 'log_reputation_action' 

Я заморозил приложение reputation в datamigration. Пожалуйста, дайте мне знать, что я делаю неправильно здесь.

Заранее спасибо.

ответ

1

Похоже, что это невозможно.

От South documentation:

Вы можете сделать гораздо больше с этим внутри миграции данных; любая модель может быть доступна . Единственное предостережение в том, что у вас не будет доступа к любым пользовательским методам или менеджерам ваших моделей, так как они не являются , сохранившимися как часть процесса замораживания (вообще нет способа сделать это ); вам придется скопировать любой код, который вы хотите, в миграцию . Не стесняйтесь применять их методы в классе миграции; Юг игнорирует все, кроме как вперед, так и назад.

+0

догадка я бы должен сделать это уродливый путь. спасибо за цитату !! –

+0

да, я думаю .. :) – Amit

+0

Если вы собираетесь переходить вперед - вы можете импортировать из реальных моделей. Просто остерегайтесь, что это будет означать, что эта миграция может быть применена только сейчас. Я использовал это с datamigration, взяв сложную рассчитанную вещь и превратив ее в настоящую колонку. –

Смежные вопросы