从数据库中获取不同列名列表的一种方法是与
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()
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)