У меня есть три модели: модель «Пользователь», «Фильм» и «Рейтинг»:
class User(models.Model):
user_id = models.IntegerField(primary_key=True)
class Movie(models.Model):
movie_id = models.IntegerField(primary_key=True)
imdb_rating = models.FloatField(null=True)
rt_rating = models.IntegerField(null=True)
class Rating(models.Model):
rating_id = models.IntegerField(primary_key=True)
user = models.ForeignKey(
User,
on_delete=models.CASCADE,
related_name='ratings'
)
movie = models.ForeignKey(
Movie,
on_delete=models.CASCADE,
related_name='ratings'
)
rating = models.FloatField()
Для рейтинга я хотел бы отметить, где у меня есть разница между Rating.rating
и Movie.imdb_rating
.
У меня также есть userRatings
, который содержит только оценки пользователя с id = 1, чтобы упростить вещи.
Я пытался использовать
userRating.annotate(imdb_diff=Value('rating') - Value('movie__imdb_rating'))
Но я получаюошибка
django.core.exceptions.FieldError: Cannot resolve expression type, unknown output_field
Как мне получить правильную аннотацию.