Как соединить две модели в один queryset на Django
У мне есть две модели Item и UserRating. Обе модели связаны только с user по ForeignKey. Мне нужно получать Item в котором есть user_id из UserRating c таким же id.
Это моя модель Item
class Item(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
name = models.CharField(max_length=255, null=True, blank=True)
А это модель UserRating
class UserRating(models.Model):
user = models.ForeignKey(User, on_delete=models.CASCADE, null=True, blank=True)
rate = models.DecimalField(max_digits=6, decimal_places=1)
#Item queryset
queryset = Item.objects.filter(
user__isnull=False,
user__userrating__isnull=False
).select_related(
'user'
).prefetch_related(
'user__userrating_set'
).all()
#Item instance
instance = queryset[0]
#User instance
instance.user
#UserRating queryset
instance.user.userrating_set.all()
#UserRating instance
instance.user.userrating_set.all()[0]