Django rest framework rest框架的过滤器相关模型
我有三张桌子。用户、组和组邀请。我希望用户只能邀请其他用户加入他们自己所在的组。 我在ViewSet中所做的过滤仅用于GET。它不会过滤掉用户所属的组 我的模型(简化以减少冗长): 序列化程序:Django rest framework rest框架的过滤器相关模型,django-rest-framework,django-serializer,django-rest-viewsets,Django Rest Framework,Django Serializer,Django Rest Viewsets,我有三张桌子。用户、组和组邀请。我希望用户只能邀请其他用户加入他们自己所在的组。 我在ViewSet中所做的过滤仅用于GET。它不会过滤掉用户所属的组 我的模型(简化以减少冗长): 序列化程序: class InviteSerializer(ModelSerializer): user = serializers.PrimaryKeyRelatedField(queryset=User.objects.all()) group = serializers.PrimaryKeyRelate
class InviteSerializer(ModelSerializer):
user = serializers.PrimaryKeyRelatedField(queryset=User.objects.all())
group = serializers.PrimaryKeyRelatedField(queryset=Group.objects.all())
class Meta:
model = GroupInvite
fields = ('id', 'user', 'group')
视图:
我已尝试使用以下内容修改序列化程序:
class InviteSerializer(ModelSerializer):
group = SerializerMethodField()
def get_group(self):
qs = Group.objects.filter(id__in=self.request.user.group.all())
serialize = GroupSerializer(instance=qs)
return serialize.data
class Meta:
model = GroupInvite
fields = ('id', 'user', 'group')
我不工作。即使我设置了qs=Group.objects.all()
也不会给出任何结果
我读到有人说应该在视图中进行过滤。但是我不知道,也找不到关于这个的任何东西
class InviteViewSet(ModelViewSet):
queryset = GroupInvite.objects.all()
serializer_class = InviteSerializer
def get_queryset(self):
return self.queryset.all()
class InviteSerializer(ModelSerializer):
group = SerializerMethodField()
def get_group(self):
qs = Group.objects.filter(id__in=self.request.user.group.all())
serialize = GroupSerializer(instance=qs)
return serialize.data
class Meta:
model = GroupInvite
fields = ('id', 'user', 'group')