首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Django REST框架的过滤中,"purchaser__username=username“是什么意思?

在Django REST框架的过滤中,"purchaser__username=username“是什么意思?
EN

Stack Overflow用户
提问于 2022-06-23 01:41:10
回答 1查看 43关注 0票数 0

我正在学习如何在我的项目中使用Django Rest框架,但我对下面的代码感到困惑

代码语言:javascript
复制
    serializer_class = PurchaseSerializer

    def get_queryset(self):
        """
        Optionally restricts the returned purchases to a given user,
        by filtering against a `username` query parameter in the URL.
        """
        queryset = Purchase.objects.all()
        username = self.request.query_params.get('username')
        if username is not None:
            queryset = queryset.filter(purchaser__username=username)
        return queryset

在这段代码中,purchaser__username=username是什么意思?现在我有点糊涂了。

EN

回答 1

Stack Overflow用户

发布于 2022-06-23 03:11:38

queryset过滤器中的双下划线通常意味着您正在跟踪不同模型之间的某种关系。

在这种情况下,您有一个模型购买,而该模型有一个字段“购买者”。“购买者”字段可能是与另一种模型(如用户)的多对一链接(因为购买可以有一个购买者,但用户可能会进行许多购买)。用户模型有一个字段'username',可能是一个简单的字符串。

因此,queryset.filter的意思是,获取采购模型中引用特定用户的所有实例。若要判断哪个特定用户,请将用户的“用户名”字段(purchaser__username)与URL (即,get_queryset.html?username=fred123)中的用户名字符串匹配

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72723631

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档