我正在使用 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
属性无法正常工作。关于如何将users
User 类型的嵌套列表作为 QuerySet 访问以便该视图可以正常工作的任何想法?还是我以不正确的方式处理这个问题?