0

ユーザー外部キーを持つ約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()

結果辞書を手動で更新せずにどうすればよいですか?

4

1 に答える 1

1

django からカスタム 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 をより簡単に使用できます。私の意見では、この巨大なクエリの代わりに移行を作成する方が高速です。

于 2012-08-08T20:44:05.497 に答える