我很难过......这可能很明显,但我似乎无法区分这里删除重复项
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 是解决这个问题的正确方法,并且无法弄清楚如何让它发挥作用......)