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

标签 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 中将查询集写入不同的记录,但 mysql 数据库给出了该数据库后端不支持 DISTINCT ON 字段?

那么如何显示唯一记录呢?不干扰客户和请求模型?

最佳答案

请参见此处: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 删除重复项。

关于mysql - 显示 django admin 中另一个模型中的记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28186648/

相关文章:

php - MySQL 的本地主机错误

python - Django:未找到字段?

django - 为我所有的模型添加一个属性

python - 只读模型并在 django admin 中显示为列表?

java.sql.SQLException : Parameter index out of range (1 > number of parameters, 即 0)。我收到这个错误

mysql - 令人困惑的时间输出

django - 我对 app.py 中使用的就绪函数感到困惑

python - Django:通过类似字典的接口(interface)访问表

django - manage.py - 不在项目文件夹中?

php - 当我连接两个表时,不返回空值。返回以前的数据