Django - 使用另一个模态的字段过滤查询集
Django - Filter Queryset With Another Modal's Field
我有两个模式:Group 和 GroupContents。
GroupContents 模式:
class GroupContents(models.Model):
group = models.ForeignKey(Group, on_delete=models.CASCADE, null=True, blank=True)
content= models.TextField(max_length=180)
组模态:
class Group(models.Model):
name = models.CharField(max_length=255, unique=True)
description = models.TextField(blank=True, max_length=80, default='')
private= models.TextField(blank=False, default='0')
我想将我的 GroupContents 查询集过滤为非私有的相关组对象。我不知道如何解决。我试过这个但没有用:
class GroupContentsViewSet(viewsets.ModelViewSet):
serializer_class = GroupContentsSerializer
authentication_classes = (JSONWebTokenAuthentication,)
permission_classes = (IsAuthenticatedOrReadOnly,)
def get_queryset(self):
queryset = GroupContents.objects.filter(self.group.secret=0)
return queryset
我不知道如何接近。非常感谢...
您可以 .filter(…)
[Django-doc] 使用:
class GroupContentsViewSet(viewsets.ModelViewSet):
serializer_class = GroupContentsSerializer
authentication_classes = (JSONWebTokenAuthentication,)
permission_classes = (IsAuthenticatedOrReadOnly,)
def get_queryset(self):
return GroupContents.objects.filter(<b>group__private='0'</b>)
使用 TextField
看起来很奇怪,而不是简单的 BooleanField
[Django-doc]。
Note: normally a Django model is given a singular name, so GroupContent
instead of GroupContents
.
我有两个模式:Group 和 GroupContents。
GroupContents 模式:
class GroupContents(models.Model):
group = models.ForeignKey(Group, on_delete=models.CASCADE, null=True, blank=True)
content= models.TextField(max_length=180)
组模态:
class Group(models.Model):
name = models.CharField(max_length=255, unique=True)
description = models.TextField(blank=True, max_length=80, default='')
private= models.TextField(blank=False, default='0')
我想将我的 GroupContents 查询集过滤为非私有的相关组对象。我不知道如何解决。我试过这个但没有用:
class GroupContentsViewSet(viewsets.ModelViewSet):
serializer_class = GroupContentsSerializer
authentication_classes = (JSONWebTokenAuthentication,)
permission_classes = (IsAuthenticatedOrReadOnly,)
def get_queryset(self):
queryset = GroupContents.objects.filter(self.group.secret=0)
return queryset
我不知道如何接近。非常感谢...
您可以 .filter(…)
[Django-doc] 使用:
class GroupContentsViewSet(viewsets.ModelViewSet):
serializer_class = GroupContentsSerializer
authentication_classes = (JSONWebTokenAuthentication,)
permission_classes = (IsAuthenticatedOrReadOnly,)
def get_queryset(self):
return GroupContents.objects.filter(<b>group__private='0'</b>)
使用 TextField
看起来很奇怪,而不是简单的 BooleanField
[Django-doc]。
Note: normally a Django model is given a singular name, so
GroupContent
instead of.GroupContents