[英]tastypie related resources group by
我在新TastyPie
,我想一些幫助, 也許一個簡單的任務(與英語太d :)。 我有一個領域的兩個相關資源。 ForeignKey
和我想要一個結果集,其中包含跑步者在一段時間內執行的總循環。 該查詢反映在下一個SQL查詢中。
SELECT r.firstName, r.lastName, COUNT(l.id) FROM Runners r INNER JOIN Loops l ON r.id = l.runnerId WHERE l.start >= '1900-01-01' AND l.end <= '1900-01-02'
Resources.py
class LoopsResource(ModelResource):
operators = fields.ForeignKey("OperatorsResource", "operators", full=True, null=True, blank=True)
class Meta:
queryset = Loopssync.objects.all()
resource_name = 'Loopssync'
authorization = Authorization()
#fields = []
filtering = {
"startedat" : ['gte', 'gt', 'lte', 'lt'],
"finishedat" : ['gte', 'gt', 'lte', 'lt'],
"operatorid": ALL_WITH_RELATIONS
}
class RunnersResource(ModelResource):
class Meta:
queryset = Runners.objects.all()
resource_name = 'Runners'
authorization = Authorization()
fields = ['id', 'firstname', 'lastname']
filtering = {"id": ALL}
型號
class Loopssync(models.Model):
remoteid = models.IntegerField(db_column='remoteId', blank=True, null=True)
startedat = models.DateTimeField(db_column='startedAt')
finishedat = models.DateTimeField(db_column='finishedAt')
runnerid = models.ForeignKey('Runners', db_column='runnerId')
class Runners(models.Model):
firstname = models.TextField(db_column='firstName')
lastname = models.TextField(db_column='lastName')
此外,我想知道我應該使用什么URI在瀏覽器中獲取此設置結果。
在第2行之后添加:
runners = fields.ToManyField("RunnersResource", "runners", full=True, null=True, blank=True)
然后,您應該可以執行以下操作:
?startedat__gte=1900-01-01&finishedat__lte=1900-01-02
無需計數。 您可以簡單地計算返回的循環數。 或者,也許好吃的人甚至會為您提供這些信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.