我有大约5个用户外键表,即:
class Passport(models.Model):
user = models.OneToOneField(User)
...
此外,还有像UserProfile,Company,UserOptions,NotifySettings等类。我需要为用户摘要页面提供连接值的dict。此外,我需要加入这个联盟这个摘要统计数据:
rent_sums = WriteOff.objects.filter(created_at__range=(rent_start, rent_finish), write_off_type='rent').values('user').\
annotate(rent_amount=Sum('amount')).order_by()
如果没有手动更新结果字典,我怎么能这样做?
答案 0 :(得分:1)
你可以通过从django执行custom SQL来做到这一点,但我在这里看到的主要问题是处理模型的方式,如果你将所有这些用户外键混合在一起会更容易UserProfile,例如:
class UserProfile(models.Model):
user = fields.OneToOneField(User)
company = fields.ForeignKey(Company)
options = fields.ForeignKey(Options)
notification_settings = fields.ForeignKey(NotifySettings)
...
这样你就可以使用ORM django带来更轻松。在我看来,创建迁移而不是这个巨大的查询会更快。