0

次のことを行うカスタムマネージャーの作成を手伝ってくれる人はいますか....

これは私にとって単なる学習演習であり、実際のアプリケーションではないため、できるだけ多くの説明を求めています.

1) 自身 (Person) と Profile の 2 つのオブジェクトを取得します。

2) person.age を profile.dog_years で割る

3)これをモデルに追加します

私の推測では、最初に models.py でカスタム マネージャーを作成します。

class PersonManager(models.Manager):
    def make_score(self,profile):

カスタム マネージャー内で、self.age / profile.dog_years の計算を行います。

それからいくつかの方法でそれを返しますか?

モデルに追加します。つまり、dogAge = PersonManager()

結果:

次に、ビュー内のすべての人が Profile.objects.filter() を返すと (どういうわけかここでプロファイルを渡しますか?)、リストされているすべての人の犬の年齢を含む dogAge という新しいフィールドができます。

4

1 に答える 1

1

これは、マネージャで行うことではありません。これは、通常のモデル メソッドのジョブです。

Manager メソッドは、何らかの方法でクエリを変更するためのものです。それはやりたいことではありません。クエリセット内の各オブジェクトにプロパティに注釈を付けたいのです。それ以上のデータベース計算は必要ないため、モデル メソッドが適切な場所です。

于 2013-02-16T18:23:17.080 に答える