显示django admin中另一个模型中的记录

时间:2015-01-28 07:16:29

标签: mysql django django-admin

我有像

这样的模特
class Customers(models.Model):
     m1 = models.EmailField()

class Requests(models.Model):
     m2 = models.EmailField()

class CustomersRequests(Customers):
     class Meta:
          proxy = True

我的问题是我想在CustomersRequests管理员中显示唯一的电子邮件,这样就是那些客户电子邮件在请求模型中。

例如:

客户

v1@xyz.com
v2@xyz.com
v3@xyx.com

v1@xyz.com
v1@xyz.com
v3@xyx.com
v1@xyz.com
我只想在CustomersRequests中记录以下内容 v1@xyz.com
v3@xyx.com
我在CustomersRequests中将queryset写入不同的记录,但是这个数据库后端不支持mysql database给DISTINCT ON字段?

然后我如何显示独特的记录?在不打扰客户和请求模型的情况下?

1 个答案:

答案 0 :(得分:0)

见这里:https://docs.djangoproject.com/en/1.7/ref/models/querysets/#django.db.models.query.QuerySet.distinct

仅在Postgres上支持选择.distinct()内的字段。

要使其在其他后端上运行,您可能需要一个不同的策略。我没有测试过这些,但您可以尝试:

  1. .annotate().order_by('field')
  2. .order_by('field').distinct()
  3. 返回查询集后,通过Python删除重复项。