2

我正在使用 django-rest-framework 创建一个 Django 应用程序,并使用 djongo 连接到 MongoDB。我有一个这样的嵌套模型:

class Group(models.Model):
    group_code = models.CharField(
        max_length=15,
        blank=False,
        unique=True
    )

    users = models.ArrayModelField(
        model_container=User
    )

class User(models.Model):
    name = models.CharField(
        max_length=100
    )

    user_code = models.CharField(
        max_length=32,
        default=hex_uuid,
        editable=False
    )

    class Meta:
        abstract = True

我正在尝试设置一个视图以在以下 URL 检索用户:

urlpatterns = {
    url(r'^user/(?P<group_code>[\w]+)/(?P<user_code>[\w]+)/$',
        UserDetail.as_view(), name='user-detail')
}

本质上,我希望视图只显示用户信息而不是组信息。这没有用,但这是我尝试的:

class UserDetail(generics.RetrieveUpdateDestroyAPIView):
    serializer_class = UserFullSerializer

    def get_queryset(self, *args, **kwargs):
        return Group.objects.get(team_code=self.kwargs['group_code']).users

    lookup_field = 'user_code'
    lookup_url_kwarg = 'user_code'

然而,users在这种情况下是一个普通的列表而不是一个 QuerySet。因此,该lookup_field属性无法正常工作。关于如何将usersUser 类型的嵌套列表作为 QuerySet 访问以便该视图可以正常工作的任何想法?还是我以不正确的方式处理这个问题?

4

0 回答 0