Не парься, если сигналы подходят, бери сигналы. Загляни в код сигналов и посмотри, там нет ничего такого, что указывало бына их ненадежность, это просто калбеки, цепляющиеся к определенным событиям. Можно и сейв переписать и во вьюхе руками добавить логику, но имхо сигналам тут самое место. Впихивать этот код в сейв модели рейтинга имхо не очень красиво, фактически ты в методе сейв объекта меняешь совершенно другой объект, пахнет говнокодом. А сигнал сразу видно, сразу понятно где объект меняется и видно что с ним происходит.
Есть такая штука, как сервисы