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