我有这个Django模型(来自Django CMS):

class Placeholder(models.Model):
    slot = models.CharField(_("slot"), max_length=50, db_index=True)
    default_width = models.PositiveSmallIntegerField(_("width"), null=True)


我想删除具有重复的“ slot”值的占位符对象,仅保留每个对象的第一个并删除其他对象。

如何编写执行此操作的查询(使用Django QuerySet API)?

最佳答案

我将采用一种功能性方法,而不是执行所有这些操作的一个特定查询:

existing_slots = []
for placeholder in Placeholder.objects.all():
    if placeholder.slot in existing_slots:
        placeholder.delete()
    else:
        existing_slots.append(placeholder.slot)

关于django - 删除特定字段中具有重复值的Django QuerySet对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5480953/

10-16 23:54