Во-первых (и с оговоркой, что я ничего не знаю о рейтинговой системе Reddits), если вы не хотите, чтобы пользователи ставили оценки от отрицательных миллионов до положительных миллионов, почему бы не использовать варианты ?
Теперь к проблеме: модель, которая может быть скорректирована, должна иметь отношение, которое допускает множество оценок для одной модели. К сожалению, это означает, что ни одно из полей отношений в Django не будет работать. Абсолютно простое решение этого вопроса - иметь рейтинг в реальной модели.
Если вы не хотите копировать и вставлять поля рейтинга, вы можете использовать абстрактную модель и наследовать от нее:
class RateableModel(models.Model):
rating = models.Integerfield(...)
rating_user = models.ForeignKey(User)
class Meta:
abstract = True
class SomeModelThatCanBeRated(RateableModel):
# Fields for this model