При написании заявки для школьного комитета по ежегодникам я зашел в тупик с моделированием конкретных отношений. На данный момент у меня есть фото класс
class Photo(models.Model):
photo = models.ImageField(upload_to="user_photos/")
name = models.CharField(blank=True, max_length=50)
rating = models.IntegerField(default=1000)
wins = models.IntegerField(default=0)
matches = models.IntegerField(default=0)
и пользовательский класс
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
group = models.CharField(max_length=50)
оба из которых работают плавно. Я хотел бы разбить его так, чтобы у Фотографии была глобальная оценка, полученная из голосов всей пользовательской базы, а также оценка, основанная только на голосах пользователей за эту фотографию. К сожалению, я не знаю, как это структурировать. Моей первой мыслью было месторождение ManyToMany, но я также думал, что что-то вроде разбивки рейтинга на его собственную модель, например:
class Rating(models.Model)
photo = models.ManyToOne(Photo)
rating = models.IntegerField(default=1500)
может работать.
Может ли Джанго (или, на самом деле, любой, кто немного компетентен, потому что я знаю, что я не так), гуру, указать мне правильное направление при приближении к этой простой головоломке?