楷模:class Event(models.Model): place = models.ForeignKey(SomePlacesModel, on_delete = models.CASCADE) event_name = models.CharField('Event Name', max_length = 20) event_date= models.DateField('Event Date') ...class Result(models.Model) event = models.ForeignKey(Event, on_delete = models.CASCADE) event_name = models.CharField('Event Name', max_length = 20) # Cache from Event result = models.FloatField('Result') some1 = .... some2 = ....我需要獲取上個(gè)月(周等)按 Event.event_date 排序的結(jié)果查詢集(但這不起作用..):res = Result.objects.select_related('event__event_date').filter(some1 = something1, some2 = something2).order_by('event_name')[range:]謝謝。
1 回答
陪伴而非守候
TA貢獻(xiàn)1757條經(jīng)驗(yàn) 獲得超8個(gè)贊
這不是.select_related(…)[Django-doc]應(yīng)該做的。您可以通過(guò)以下方式在相關(guān)字段上訂購(gòu):
res = Result.objects.filter(
? ? some1=something1, some2=something2
).order_by(
? ? 'event__event_date'
)
如果您只想檢索上周的Resultfor ,您可以使用以下內(nèi)容進(jìn)行過(guò)濾:Event
from django.utils.timezone import now
from datetime import timedelta
res = Result.objects.filter(
? ? some1=something1, some2=something2,
? ? event__event_date__gte=now().date()-timedelta(days=7)
).order_by(
? ? 'event__event_date'
)
添加回答
舉報(bào)
0/150
提交
取消
