【发布时间】:2021-07-23 02:52:35
【问题描述】:
我很难过......这可能很明显,但我似乎无法区分此处删除重复项
q = SubscriberPhoneNumber.objects.values_list('phone_number',flat=True).order_by('phone_number').distinct('phone_number')
print(q)
<QuerySet ['9711231234', '5095551212', '9994441212', '9994441212', '9711231234']>
如您所见,9711231234 出现了两次(9994441212 也是如此)(注意这些不是真实的电话号码...)
这是模型
class SubscriberPhoneNumber(models.Model):
subscriber = models.ForeignKey(SystemStatusSubscriber, on_delete=models.CASCADE)
phone_number = EncryptedCharField(max_length=24, **null)
country_code = models.CharField(max_length=8, default='+1')
我觉得我失去了理智......并且不明白为什么 distinct 没有消除重复项(我真的想在 country_code 和 phone_number 上有所不同,但只是包括 phone_number 以简化问题)(我也不需要 values_list 但认为这可能有助于仅选择我感兴趣的列)
(请注意,我当然可以将结果转换为 set 以获得唯一值...但我觉得 distinct 是解决此问题的正确方法,并且无法弄清楚如何使其工作...)
【问题讨论】:
标签: python django postgresql django-models