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()