0
このエラーは、 'ステージインスタンスを介してマネージャにアクセスできません。'というエラーが発生します。私はそれを解決しようとしているいくつかの良い時間を過ごしましたが、私は何が間違っているのか分かりません。テンプレートからのコードのDjangoモデルマネージャはモデルインスタンス経由でアクセスできない
models.py
class StageManager(models.Manager):
def get_queryset(self):
return super(StageManager, self).get_queryset().filter(stage=self.id, stage__zone=self.zone).aggregate(Sum('substage_value'))
class Stage(models.Model):
tablerow_stage = models.ForeignKey(TRStage)
stage_value = models.PositiveSmallIntegerField(default=0)
slug = models.SlugField(unique=True)
zone = models.ForeignKey(Zone)
objects = models.Manager() # The default manager
subs_objects = StageManager()
def __str__(self):
return '%s.%s.%s' % (self.zone.project,
self.tablerow_stage.stage_num,
self.zone.zone_num)
ライン:
<td style="width:40px" align="center">{{ stage.subs_objects }}</td>
テンプレートからこのsubstage_classにアクセスするにはどうすればよいのですか?ステージオブジェクトごとにsubstage_sumの値にアクセスできますか? – BlueDog
私が記述した方法はあなたのモデルに入れられ、モデルの他のすべてのもの( '{{stage.substage_sum}}')のようなテンプレートからアクセスできます。あなたが正しく達成しようとしていたことを私が推測しなかった場合、あなたはそれを更新する必要があります。 – Anonymous
あなたのコメントのおかげで、しかし私は私のコメントを提出する前にそれを試してみました。私はこのエラー 'フィールド'にキーワード 'ステージ'を解決できません。選択肢は、substage_sumにアクセスしようとすると、id、slug、stage_value、substage、tablerow_stage、tablerow_stage_id、zone、zone_id 'です。 – BlueDog