如何在django表单中过滤order by和distict?

1yjd4xko  于 2022-12-01  发布在  Go
关注(0)|答案(2)|浏览(112)
Name            email                 date
_________________________________________________

Dane            dane@yahoo.com        2017-06-20
Kim             kim@gmail.com         2017-06-10
Hong            hong@gmail.com        2016-06-25
Dane            dddd@gmail.com        2017-06-04
Susan           Susan@gmail.com       2017-05-21
Dane            kkkk@gmail.com        2017-02-01
Susan           sss@gmail.com         2017-05-20

我可以通过使用EmailModel.objects.all().order_by('date').distinct('Name')来获取每个unique的第一个条目。

Name            email                 date
_________________________________________________

Dane            dane@yahoo.com        2017-06-20
Kim             kim@gmail.com         2017-06-10
Hong            hong@gmail.com        2016-06-25
Susan           Susan@gmail.com       2017-05-21

我在这里要做的是,如果第一个条目是不同的,例如对它进行更多过滤,则只将它包括在结果中-如果第一个电子邮件ID是Dave的www.example.com,则我不想将它包括在结果中dane@yahoo.com,而只在它是不同的情况下包括它。

wz8daaqr

wz8daaqr1#

您可以将F()表达式与__istartswith查找一起使用,以排除以其名称开头的电子邮件,因此:

EmailModel.objects.exclude(email__istartswith=F('Name')).order_by("date").distinct("Name")

或者,您希望在整个电子邮件中避免使用Name,以便可以使用__icontains查找,这样:

EmailModel.objects.exclude(email__icontains=F('Name')).order_by("date").distinct("Name")
oyxsuwqo

oyxsuwqo2#

假设您的模型名称为User So,您可以使用过滤器作为排序依据

User.object.filter(parameters).order_by(parameters)

相关问题