0

我是 Django 的新手,我一直在通过多个集合进行查询。

我有三个模型;

class Project(models.Model):
    name = models.CharField(max_length = 100)

class AppointmentGroup(models.Model):
    name = models.CharField(max_length = 100) # not used in design.. delete when not used at the end of the project
    project = models.ForeignKey(Project)
    location = models.ForeignKey(Location)

class Appointment(models.Model):
    appointment_group = models.ForeignKey(AppointmentGroup)
    start_date = models.DateTimeField()
    end_date = models.DateTimeField()

现在我想要一个返回的对象集,其中只包含在特定年份内有约会的项目。并且项目对象中的约会集对象只包含当年的那些!

使用 django 查询很容易做到这一点,还是我必须一个一个地遍历项目并检查日期的所有约会?

4

2 回答 2

1

我猜约会模型与您的项目有一些关系,而您只是将其保留了下来。

您可能想使用rangeand lookups that span relationships

import datetime
start = datetime.date(2010, 1, 1)
end = datetime.date(2010, 12, 31)
projects_in_2010 = Projects.objects.filter(appointmentgroup__appointment__start_date__range(start, end))
于 2011-04-08T08:41:02.990 回答
0

试试这个

AppointmentGroup.objects.filter(appoinment_set__start_date__year=2011, appoinment_set__end_date__year=2011)
于 2011-04-08T08:41:28.660 回答