Python Django Foregin键计数

Python Django Foregin键计数,python,django-models,foreign-keys,Python,Django Models,Foreign Keys,我正在尝试计算连接到房间的用户数。一个用户只能连接到一个房间,一个房间可以有多个用户 我的模特看起来像这样 类UserAbstractBaseUser,PermissionsMixin: 面向用户的数据库模型 screen\u name=models.CharFieldmax\u length=255,unique=True 房间=模型。外键 房间,相关的\u name='Room',在\u delete=models.CASCADE上 ... 课堂模型。模型: 房间数据库模型 名称=型号。Ch

我正在尝试计算连接到房间的用户数。一个用户只能连接到一个房间,一个房间可以有多个用户

我的模特看起来像这样

类UserAbstractBaseUser,PermissionsMixin: 面向用户的数据库模型 screen\u name=models.CharFieldmax\u length=255,unique=True 房间=模型。外键 房间,相关的\u name='Room',在\u delete=models.CASCADE上 ... 课堂模型。模型: 房间数据库模型 名称=型号。CharFieldmax_长度=100 is_full=models.BooleanFielddefault=False ... 我要做的是,一旦指定了一定数量的用户,就将房间的任何实例锁定在外。如何查找连接到给定房间的用户数?我正在尝试的伪代码

my_room.users.count>=最大用户数: 我的房间满了吗
提前谢谢。

要获取外来元素的数量,您可以这样做:

User.objects.filteroom=my_room.count
distinct不适用于不同于psql的数据库。
     from django.db.models import Count

     def get_queryset(self):  
        queryset = User.objects.filter(room=room_id) # if you want to filter for one room
        queryset = User.objects.all() # if you want to have a list of all rooms   
        return queryset.values('room').annotate(Count('id', distinct=True)).count() # will count unique rooms