/ /関連するオブジェクト値による問い合わせ - python、django、django-models、django-queryset

関連オブジェクト値による問い合わせ - python、django、django-models、django-queryset

私は簡単な課金システムを設定しています。そこでは、ユーザーと課金される予定の日を記載したテーブルがあります。各ユーザーには、このテーブルの1つの行のみが関連付けられています。

その日に請求されるユーザーのリストを取得するために、データベースを毎日照会する必要があります。

モデルは次のとおりです。

class BillingDay(models.Model):
user = models.ForeignKey(User)
day = models.IntegerField(max_length=2)

日フィールドに対してどのように照会しますか? User.objects.filter(billingday=1) IDを見ていますが、私は値が1のユーザーのリストを取得する必要があると考えています daybillingday

回答:

回答№1は4
User.objects.filter(billingday__day=1)

しかしメモのように、あなたは再考することを望むかもしれませんあなたがウサギの穴をあまりにも遠くに過ぎる前に、これをどうやって設定するのですか?ユーザーには複数の請求日がありますか?私の推測はノーとなるでしょう。 BillingDay モデル。複雑さと断片データを追加するだけです。請求日は、ユーザープロフィールのフィールドにすることができます。

今、ユーザのためのユーザプロファイルを作成することは、原則として、 BillingDay 余分なデータを追加する方法としてのモデル Userしかし、これははるかに拡張性があります。Djangoには、ユーザプロファイルをすべてのユーザに関連付ける方法が組み込まれています User同じユーザープロファイルオブジェクトに対して、より多くのデータを保存できます。一方、 BillingDay 1つのデータポイントに降格され、後で他のデータポイントの追加モデルを追加する必要があります(データの複雑性と断片化が増えます)。

見る ユーザプロファイルに関するDjangoのドキュメント.