0

私はDjangoが初めてで、複数のセットを照会することに行き詰まっています。

3 つのモデルがあります。

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 クエリで簡単に実行できますか?それとも、プロジェクトを 1 つずつループして、その日のすべての予定を確認する必要がありますか?

4

2 に答える 2

1

予定モデルはあなたのプロジェクトにある程度関連していると思いますが、あなたはそれをやめました。

rangeおそらくandを使用したいでしょう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 に答える