Django 删除基于特定字段的查询中的重复项

Django 删除基于特定字段的查询中的重复项,django,django-models,django-orm,Django,Django Models,Django Orm,我想从基于字段的查询中删除重复项。 我不想只得到值,还要得到对象。 ORM需要根据要删除的行和要保留的行进行选择 让我们用这个例子: name - date - value chris - 1/1/2012 - 12 youssef - 1/02/2015 - 13 trump - 1/8/2017 - 12 chris - 1/12/2018 - 21 trump - 1/03/2019 - 29 产出将是: name - date - value trump - 1/03/2019 - 2

我想从基于字段的查询中删除重复项。 我不想只得到值,还要得到对象。 ORM需要根据要删除的行和要保留的行进行选择

让我们用这个例子:

name - date - value
chris - 1/1/2012 - 12
youssef - 1/02/2015 - 13
trump - 1/8/2017 - 12
chris - 1/12/2018 - 21
trump - 1/03/2019 - 29
产出将是:

name - date - value
trump - 1/03/2019 - 29
chris - 1/12/2018 - 21
youssef - 1/02/2015 - 13
基本上,我想根据日期顺序删除重复项,比如(它不起作用):


ORM能处理这个查询吗?还是应该编写函数?

我没有找到使用ORM的任何解决方案

解决问题的唯一方法是编写以下函数:

def remove_duplicate_based_on_date(query):
    name_visited = []
    pk_to_be_deleted = []
    for object in query:
        if not(object.name in name_visited):
            name_visited += [object.name]
        else:
            pk_to_be_deleted += [object.id]
    return pk_to_be_deleted
然后像这样使用它:

base_query = Table.objects.order_by('-created_at')
pk_to_be_deleted = remove_duplicate_based_on_date(base_query)
base_query.filter(id__in=pk_to_be_deleted).delete()

退房它可能会让你了解你想做什么。谢谢,但我无法用它来解决我的问题。
base_query = Table.objects.order_by('-created_at')
pk_to_be_deleted = remove_duplicate_based_on_date(base_query)
base_query.filter(id__in=pk_to_be_deleted).delete()