Django 需要什么查询集?

Django 需要什么查询集?,django,django-queryset,Django,Django Queryset,我有以下型号: PHONE_CHOICES = ( ('home', 'Home'), ('home2', 'Home 2'), ('mobi', 'Mobile'), ('mobi2', 'Mobile 2'), ('work', 'Work'), ('work2', 'Work 2'), ) class ClientPhone(models.Model): client = models.ForeignKey(Client, edit

我有以下型号:

PHONE_CHOICES = (
    ('home', 'Home'),
    ('home2', 'Home 2'),
    ('mobi', 'Mobile'),
    ('mobi2', 'Mobile 2'),
    ('work', 'Work'),
    ('work2', 'Work 2'),
)

class ClientPhone(models.Model):
    client = models.ForeignKey(Client, editable=False)
    created = models.DateTimeField(default=datetime.now, editable=False)
    created_by = models.ForeignKey(User,editable=False)
    phone_type = models.CharField(max_length=5, choices=PHONE_CHOICES)
    number = models.CharField(max_length=24)
我知道
ClientPhone.objects.filter(client=I_clientKEY)。latest('created')
将获取输入数据库的最新电话号码,但我希望能够获取客户端的“home”、“home2”、“mobi”等(全部)的最新电话号码


如何获取查询集来执行此操作?

只需添加另一个参数以进行如下筛选:
ClientPhone.objects.filter(client=i_clientKEY,phone_type='home')。latest('created')

只需向筛选器添加另一个参数,如下所示: ClientPhone.objects.filter(client=i_clientKEY,phone\u type='home').latest('created')

latest()返回单个查询对象,而不是列表,因此您将获得相关人员的最新电话记录

如果希望获得每种电话类型的最新nmber,则必须执行不同的sql查询,这意味着您必须为每种电话类型编写不同的查询

@Aldarund:在中使用phone\u type\u可以帮助您获取列表中某个元素的phone\u type的最新记录(其中一个具有最新创建时间),但列表中的每个元素都不会有一个结果

latest()返回单个查询对象,而不是列表,所以你会得到相关人员的最新电话记录

如果希望获得每种电话类型的最新nmber,则必须执行不同的sql查询,这意味着您必须为每种电话类型编写不同的查询


@Aldarund:在
中使用phone_type______________________________________________________(client=i_clientKEY,phone_type='home',phone_type='home2',phone_type='mobi',phone_type='mobi=…).latest('created')为所有人?你可以这样做:ClientPhone.objects.filter(client=i_clientKEY,phone_type='home2','home2','mobi',…])。latest('created')我可以像
ClientPhone.objects.filter那样做吗(client=i_clientKEY,phone_type='home',phone_type='home2',phone_type='mobi',phone_type='mobi=…).latest('created')
为所有人?你可以这样做:ClientPhone.objects.filter(client=i_clientKEY,phone_type='home2','mobi',…])。latest('created')我想这可能就是答案了