Django 获取两个表中引用的对象数
我有以下两种型号。我想获得两个表中的用户对象数Django 获取两个表中引用的对象数,django,Django,我有以下两种型号。我想获得两个表中的用户对象数 class Share(models.Model): user = models.ForeignKey(User) blog = models.ForeignKey(Blog) # more code class Follow(models.Model): follower = models.ForeignKey(User) followee = models.ForeignKey(User) #
class Share(models.Model):
user = models.ForeignKey(User)
blog = models.ForeignKey(Blog)
# more code
class Follow(models.Model):
follower = models.ForeignKey(User)
followee = models.ForeignKey(User)
# more code
现在
这显然是获得唯一计数的可怕方式。有什么更好的方法可以获得此计数?试试以下方法:
冲突类型的第一组相关名称
class Follow(models.Model):
follower = models.ForeignKey(User, related_name="follower")
followee = models.ForeignKey(User, related_name="followee")
然后,使用你可以做这样的事情
from django.db.models import Q
unique_user_count = User.objects.filter(
Q(share__isnull=False)
| Q(follower__isnull=False)
| Q(followee__isnull=False)).distinct().count()
你的意思是获取Share+follow的唯一用户数吗?是的,我想要ModelsOry和ModelsOry的唯一用户数关于变量名,更新了它。就是这样。我不知道Q对象。谢谢好的,这将获得整个Follow+共享的唯一用户数。对于一个特定的博客和特定的followee(len(set(followers)和set(share_users))
)怎么样?如何在筛选器中指定它们?好像我现在没有电脑。你可以创建一个新问题,这样有人可以帮助你。
from django.db.models import Q
unique_user_count = User.objects.filter(
Q(share__isnull=False)
| Q(follower__isnull=False)
| Q(followee__isnull=False)).distinct().count()