Джанго опрашивает множества - PullRequest
0 голосов
/ 08 апреля 2011

Я новичок в 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, или я должен пройтись по проектам один за другим и проверить все назначения надата

Ответы [ 2 ]

1 голос
/ 08 апреля 2011

Полагаю, что модель встреч в некоторой степени связана с вашими проектами, и вы просто ее отключили.

Возможно, вы захотите использовать range и 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))
0 голосов
/ 08 апреля 2011

Попробуйте это

AppointmentGroup.objects.filter(appoinment_set__start_date__year=2011, appoinment_set__end_date__year=2011)
...