我有以下型号:
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')
会告诉我输入数据库的最新电话号码,但我希望能够获得“家庭”,“home2”,“mobi”等最新的电话号码。 。(全部)为客户。
如何让查询集执行此操作?
答案 0 :(得分:1)
latest()会返回单个查询对象,而不是列表,因此您将获得最新的tel。相关人员的记录。
如果您希望为每个phone_type获取最新的nmber,则必须执行不同的SQL查询,这意味着您必须为每个phone_type编写不同的查询...
@Aldarund:使用 phone_type__in 可以帮助您获取列表中某个元素(一个具有最新创建时间。)的phone_type的最新记录,但不是每个元素的最新记录。列表
答案 1 :(得分:0)
只需添加另一个参数即可过滤: ClientPhone.objects.filter(客户= i_clientKEY,PHONE_TYPE = '家')。最新的( '创造')