如果我有一个名为 Reaction 的模型,并且它有foreignkey,则引用另一个名为 User 的模型。
现在我知道我可以从Reaction模型到达User模型
但是我有一个来自 User 模型的超过 1000 个用户的列表,我想从 Reaction 模型中获得他们的比例。
我怎样才能做到这一点,而不需要从用户模型中获取每个user并通过Reaction模型获取它。
这些是我的模型:
class User(models.Model):
name = models.TextField()
class Reaction(models.Model):
from_user = models.ForeignKey(User, on_delete=models.PROTECT, default=None, related_name="reaction_from_user")
to_user = models.ForeignKey(User, on_delete=models.PROTECT, default=None, related_name="reaction_to_user")
date = models.DateField(null=True)
time = models.TimeField(null=True)
type_of_reaction = models.TextField()
have_been_seen = models.BooleanField(default=False , null=True)
您可以通过在 Django 中使用
reverse relationship
来完成此操作。
正如您所提到的,您已经有了一个用户列表,让我们target_users
,然后您可以使用以下代码来获取目标用户的反应:
target_users = User.objects.filter()
reactions_for_users = Reaction.objects.filter(to_user__in=target_users)