您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

在django中选择DISTINCT各个列?

在django中选择DISTINCT各个列?

数据库获取不同列名列表的一种方法是与distinct()结合使用values()

对于你的情况,可以执行以下操作以获取不同类别的名称

q = ProductOrder.objects.values('Category').distinct()
print q.query # See for yourself.

# The query would look something like
# SELECT DISTINCT "app_productorder"."category" FROM "app_productorder"

这里有几件事要记住。首先,这将返回ValuesQuerySet与的行为不同的QuerySet。当你说出q(上面的)第一个元素时,你会得到一个字典,而不是的实例ProductOrder

其次,最好阅读文档中有关using 的警告说明distinct()。上面的例子可以工作,但所有的组合distinct(),并values()可能不会。

PS:在模型中的字段中使用小写字母是一个好主意。在你的情况下,这意味着重写模型,如下所示:

class ProductOrder(models.Model):
    product  = models.CharField(max_length=20, primary_key=True)
    category = models.CharField(max_length=30)
    rank = models.IntegerField()
Go 2022/1/1 18:23:22 有316人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶