Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/apache-kafka/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django rest框架的相关对象查询_Django_Nested Query_Django Related Manager - Fatal编程技术网

django rest框架的相关对象查询

django rest框架的相关对象查询,django,nested-query,django-related-manager,Django,Nested Query,Django Related Manager,我有以下型号 class STUser(AbstractBaseUser): email = models.EmailField(unique=True) name = models.CharField(max_length=255) companyname = models.CharField(max_length=200, blank=True, null=True) ... class VenuePermissions(models.Model):

我有以下型号

class STUser(AbstractBaseUser):
    email = models.EmailField(unique=True)
    name = models.CharField(max_length=255)
    companyname = models.CharField(max_length=200, blank=True, null=True)
    ...

class VenuePermissions(models.Model):
    user = models.ForeignKey(STUser, on_delete=models.CASCADE)
    venue = models.ForeignKey(Venue, on_delete=models.CASCADE) 
    signupvaildatestring = models.CharField(max_length=200, blank=True, null=True)
    ...
我想获取所有
STUser
对象并获取它们的所有权限

因此,我想获取所有
VenuePermissions
对象。并抓取每个venuePermission的
用户
场馆
对象

我有两种方法可以做到这一点。使用
STUser
上的
VenuePermissions\u set
属性,但是当场地即将成为
pk
值时,我如何获取场地

或者专注于
VenuePermissions
对象,从pk值中获取用户和场地,但如何

我记得嵌套查询,我在浏览代码中也做过一次

以下是一个例子:

 rooms = Room.objects.filter(venue=OuterRef('pk'), sixtyroundseatingoption= True)
            venuelist = venuelist.annotate(sixtyrounds=Exists(rooms))
            venuelist = venuelist.filter(Q(sixtyrounds = True) | Q(fullbuyoutsixtyroundseatingoption = True))
我以前在序列化程序中设置过对象

示例序列化程序:

class RoomAndImageSerializer(serializers.ModelSerializer):
    roomimage_set = RoomImageSerializer(many=True, read_only=True)
    class Meta:
        model = Room
        fields = ('pk','name')
如果您对本查询有任何帮助,我们将不胜感激

这就是我目前正在尝试的,如果可行,我将发布一个答案:

class VenueUserList(ListAPIView):
    serializer_class = VenueUserListSerializer
    queryset = VenuePermissions.objects.select_related('user').select_related('venue').filter(signupvaildatestring=None)

class VenueUserListSerializer(serializers.ModelSerializer):
    user = UserSerializer()
    venue = VenueSerializer()
    class Meta:
        model = VenuePermissions
        fields = ('user', 'venue', 'isvenueviewer', 'isvenueeventplanner', 'isvenueadministrator')
class VenueUserList(ListAPIView):
    serializer_class = VenueUserListSerializer
    queryset = VenuePermissions.objects.select_related('user').select_related('venue').filter(signupvaildatestring=None)

class VenueUserListSerializer(serializers.ModelSerializer):
    user = UserSerializer()
    venue = VenueSerializer()
    class Meta:
        model = VenuePermissions
        fields = ('user', 'venue', 'isvenueviewer', 'isvenueeventplanner', 'isvenueadministrator')

答案是这样的。但是,我仍然需要按用户对场馆进行分组。正在努力