问题标签 [drf-queryset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
django - PageNumberPagination 和没有固定顺序的查询集
根据文档,在使用继承自的类时启用分页没有什么特别的要求GenericAPIView
。
我查看了 django 和 django rest 框架的代码,并且ViewSet 查询集似乎没有排序。分页仅将SQL关键字LIMIT
和添加OFFSET
到查询中。
我不明白的是如何处理没有确定顺序的查询集?为什么文档没有说在ViewSet 查询集.order_by()
的末尾添加一条语句?
python - django rest框架中的queryset vs filter_backends
我是 DRF 的新手。我在http://www.django-rest-framework.org/api-guide/filtering/#filtering-and-object-lookups浏览了过滤查询集的示例
此链接包含有关查询集过滤以及 DjangoFilterBackend 的描述。据我所知,它们的目的是相同的。但尚不清楚何时使用其中任何一种。在某些情况下,同时使用 queryset 和 filter_backends:-
谁能告诉我,这两者有什么区别?必须使用这两者中的哪一个,在什么情况下,我们必须更喜欢一个而不是另一个?
提前致谢
python - Django - 多字段查找
我有一个接受用户uuid
或phonenumber
用户的端点
现在,我有一个相应过滤的查询集。这里是。
现在的问题是,每当传递电话号码时,它都会返回 404 not found。但这些物体显然是存在的。
DRF 中是否有任何设置可以同时过滤两个或多个字段而不会覆盖get_queryset
.??
我找到了一个相关的问题,但无法使其工作。我哪里错了?
更新
这是我尝试过的。有用。但想听听更好的解决方案(如果有的话)
django - How can i use limit offset pagination for viewsets
Views.py
Settings.py i have added
in my urls.py
When I try with this URL http://192.168.2.66:8001/v1/voucher/country it is returning all data.
But when I am trying with this URL http://192.168.2.66:8001/v1/voucher/country/?limit=2&offset=2
but it is returning 404 error. I am new to django.kindly help me :)
python - Django Rest Framework 序列化嵌套数据
我试图在这个序列化器中序列化数据,但我总是得到输出{}
这是我的序列化程序:
这是我的看法:
我related_user
从发布请求中获取 id,然后获取实际对象的查询集,并且user
是在 url: 中传递的 id user/{1}/
。然后我序列化每个用户并创建一个字典来传递给RelationshipSerializer
. 序列化程序返回有效但响应是{}
,我做错了什么?
python - 在 Django Rest Framework 中合并多个查询集
如何在 Django 中合并查询集?我使用 Django Rest 框架。
我使用以下模型:
我现在想要一个列出给定城市的所有居民的视图(slug 是城市的 slug)。
这是我写它的方式:
如您所见,我通过遍历所有公民并过滤居住在正确城市的房屋中的人来创建城市的居民列表。我只是觉得这很糟糕而且效率很低,因为数据库必须遍历所有公民。最好有类似的东西
然后我只需要遍历少量的城市。这个问题显然是上面的查询返回了一个查询集。因此,我不能像那样链接房屋和居民。
PS:如果您有其他建议,我可以如何改善我的观点,请告诉我!
PPS:我在stackoverflow上发现了这个问题,但它只显示了如何获取一个列表,它不适用于get_queryset和django rest结构,对吗?
编辑(更多规范以更好地解决问题):所以目标是命中 api 路线:
并获取该市所有居民的名单。
像这样:
django-models - DRF - 在 SlugRelatedField 上使用包含字段查找的查询集过滤器
我正在努力弄清楚如何在 SlugRelatedField 上使用“field__contains”运行查询集过滤器。我有一个简单的 Book 模型和一个 Tag 模型,如下所示:
现在在我的 BooksView 中,我希望能够通过 meta_tags 值过滤查询集。我已经尝试使用“__contains”字段查找进行以下操作:
但是我从 django 收到以下错误:
文件“~MyProject/venv/lib/python3.6/site-packages/django/db/models/sql/query.py”,第 1076 行,在 build_lookup raise FieldError('Related Field got invalid lookup: {}'.format (lookup_name)) django.core.exceptions.FieldError:相关字段查找无效:包含
据我了解,这意味着由于“meta_tags”不是常规数组或文本字段,因此无法在该字段上应用包含字段查找。
如果是这样,在这种情况下过滤查询集以获取 meta_tags 值的最佳方法是什么?
django - 显示并序列化 select_related() 模型方法的结果
我有两个简单的模型:用户(标准 Django 用户)和类 Post(models.Model):
我的前端 (SPA) 发送请求以获取所有帖子,因此我的 Django API 会去获取 Post.objects.all()。但是,我还想将 User.username 拉入响应中。我的理解是我可以通过运行来做到这一点:
当我posts.query
从生成的 SQL 查询运行时,我可以看到正在拉入用户字段,但是当我尝试序列化此数据时似乎无法看到它们。我在这里错过了一些非常基本的东西吗?将相关数据与父数据一起序列化并与DRF Response一起发送出去的方法是什么?我已经尝试过本文中描述的方法,但是使用这种方法构建的序列化程序似乎没有为我返回相关数据:http:
//ses4j.github.io/2015/11/23/optimizing-slow-django-rest-框架性能/
django - 从Django查询集中的另一个模型获取查询集
在我这样写的 ModelViewSet 中:
我已经通过 API 获得了这些数据
但是,我希望 d_id 更具体,如下所示:
所以 D Model 中的数据已经通过 d_id=8 获取并附加到原始查询集中。
我怎么能这样做?需要你的帮助...