django - 使用 Django 和 Tastypie 返回随机项目

标签 django random tastypie

在直接的 Django 中,您可以通过以下方式访问随机模型实例:

randinst = MyModel.objects.order_by('?')

注意:虽然这存在性能问题,但我已经使用 sqlite 后端进行了测试,并且在最多 100000 次尝试中确实得到了真正随机的结果。由于我的应用程序不需要超出此范围的显着性能,因此我不关心其他后端。

我希望完成的是:客户端发出请求,/api/v1/mymodel/?limit=10,并通过 tastypie 从 MyModel 获取一组随机的十行,就像您将运行上面的代码片段 10 次。然后,它发出相同的请求,并接收 10 个不同的(在概率范围内)随机行。

注意:我已尝试请求 /api/v1/mymodel/?ordering='?' 及其所有合理变体均无济于事。设置 MyModelResource.Meta.ordering = ['?']

也无济于事

有什么办法可以用 Tastypie 来实现我的目标吗?还有其他解决方案可以尝试吗?谢谢。

最佳答案

在#tastypie 上礼貌地回答。

设置模型的查询集如下:

class MyModelResource(ModelResource):
  class Meta:
    queryset = MyModel.objects.all().order_by('?')

这里的关键是使用objects.all().order_by而不仅仅是objects.order_by

关于django - 使用 Django 和 Tastypie 返回随机项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10921284/

相关文章:

python - 如何在常规 django View 中将数据添加到 tastypie 资源

python - 检查组成员身份(Django 中的多对多)

python - djangoviews.py避免 View 中的重复代码

python - 保存方法很多

java - 获取银行程序java的唯一id

Django tastypie 将 DecimalField 序列化为 json 字符串而不是数字

python - 如何查询外部表中的所有用户?

javascript - 为什么这个坐标返回函数有时会返回超出其假定限制的坐标?

python - 在 python/numpy 中随机放置给定数字的矩阵

json - Django : DRF Token based Authentication VS JSON Web Token