原文:

今天突然有人问起在 django 的 model 里面怎么用 distinct, 对于这种东西,我一向的观点是查看django 的在线文档。于是不加思索的根据在线文档给出了答案,但结果很让人沮丧,运行程序时会报错: NotImplementedError: DISTINCT ON fields is not supported by this database backend, 从字面上看,貌似是因为才用了mysql 的原因,其实不是.

django 在线文档讲解 distinct 的连接如下:
https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.distinct
里面是这么讲解  distinct 的

>>> Author.objects.distinct()
[...] >>> Entry.objects.order_by('pub_date').distinct('pub_date')
[...] >>> Entry.objects.order_by('blog').distinct('blog')
[...] >>> Entry.objects.order_by('author', 'pub_date').distinct('author', 'pub_date')
[...] >>> Entry.objects.order_by('blog__name', 'mod_date').distinct('blog__name', 'mod_date')
[...] >>> Entry.objects.order_by('author', 'pub_date').distinct('author')

于是我按照这样做了一个,结果就出现上面的错误了.

真正的做法是这样的,如果用mysql 的话,distinct() 里面不要任何参数,参数应该写在 value 中去,类似如下方式:

if __name__ == "__main__":
a = Category.objects.values('parentcode','email').distinct()
for obj in a:
print obj

这表示按照 parentcode,email 组合去除重复的内容.
如果是这样:

if __name__ == "__main__":
a = Category.objects.values('parentcode').distinct()
for obj in a:
print obj

就表示按照 parentcode 去除重复的内容。  

最新文章

  1. Chrome 扩展机制
  2. p/invoke碎片--对类的封送处理
  3. JQ常用代码
  4. 小小border用处多
  5. 点击 Run 之后发生了什么?
  6. DataTable to byte[]、DataTable to XML(string)
  7. Html5简单存储localStorage和sessionStorage
  8. R语言-神经网络包RSNNS
  9. 【GOF23设计模式】中介者模式
  10. poj 1159 dp回文串
  11. 国庆第六日(2014年10月6日11:51:15),node-webkit,理财产品
  12. 负载均衡之nginx
  13. javascript setinterval 正确的语法
  14. zookeeper源码 — 一、单机启动
  15. 测试miniconda,python以及机器学习包是否安装成功
  16. 【360图书馆】插入U盘自动攻击:BadUSB原理与实现
  17. Linux系统管理和维护常用命令
  18. docker部署PiggyMetrics分布式微服务
  19. Django中间件执行流程
  20. 使用 lego生成 Let's Encrypt 证书

热门文章

  1. 逆向破解之160个CrackMe —— 028
  2. VUE简单的语法
  3. 浅谈僵尸网络利器:Fast-flux技术
  4. discuz x3.2简化的搜索框代码
  5. APIO2019游记
  6. 微信小程序 组件 全局样式
  7. vue文件夹上传组件选哪个好?
  8. NOIP2019翻车前计划以及日记
  9. 专题-主存储器与Cache的地址映射方式
  10. const 变量在多个文件共享,如何验证两种不同的方式下,编译器是否会在多个文件下建立多个副本