Создаем сигнал:
@receiver(post_save, sender=UserRates)
def post_save_user_rates_handler(sender, instance, created, **kwargs):
print('----')
Сохраняем/создаем объект в базе и видим, что сначала вызвается сигнал, а потом происходит POST запрос с новыми данными.
Если там стоит функция, которая проверяет созданный объект (UserRates.objects.get(user=user_pk), то она ничего не получает, т.к. объект еще не создан.
Не первый раз замечаю, что post_save работает перед фактическим save().
Как это исправить?