的總和我使用Django的nonrel,Postgre作爲數據庫和蒙戈作爲文件存儲。彙總一個QuerySet得到FileFields大小
我的模型看起來像這樣和正常工作
class Doc(models.Model):
created_on = models.DateTimeField(auto_now_add=True)
file = models.FileField(storage=gridfs_storage, upload_to='/')
和工作正常
Doc.objects.all()[0].file.size
108776
現在我試圖聚集大小,得到查詢集的總大小。
我已經試過
Doc.objects.all().aggregate(Sum('file__size'))
但這扔
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/Users/zoidberg/dev/backus/lib/python2.6/site-packages/django/db/models/query.py", line 321, in aggregate
is_summary=True)
File "/Users/zoidberg/dev/backus/lib/python2.6/site-packages/django/db/models/sql/query.py", line 974, in add_aggregate
field_list, opts, self.get_initial_alias(), False)
File "/Users/zoidberg/dev/backus/lib/python2.6/site-packages/django/db/models/sql/query.py", line 1417, in setup_joins
raise FieldError("Join on field %r not permitted. Did you misspell %r for the lookup type?" % (name, names[pos + 1]))
FieldError: Join on field 'file' not permitted. Did you misspell 'size' for the lookup type?
enter code here
如果這是可能使用ORM或I D必須遍歷文件自己的任何想法?
權的同時,我用'總和([在Doc.objects.all f.file.size對於f())'但是你的解決方案聽起來更合理。謝謝 ! – Pierre