Django
ページを作成しようとしています。何かを更新したり、ページテーブルで何かを見ることができます。同じテンプレートページにページビューのListViewとUpdateViewを表示
class CostGroup(models.Model):
name = models.CharField(max_length=200)
description = models.CharField(max_length=200)
def get_absolute_url(self):
return reverse(
'costgroup_detail',
kwargs={
'costgroup_pk': self.pk,
}
)
class Cost(models.Model):
cost_group = models.ForeignKey(CostGroup)
amount = models.DecimalField(max_digits=50, decimal_places=2)
def get_absolute_url(self):
return reverse(
'cost_detail',
kwargs={
'cost_pk': self.pk,
}
)
だから、編集フォームがCostGroup
モデルのname
とdescription
フィールド用で、テーブルが、私は以前にそれがで働いていた「amounts`
の一覧を表示する必要があります:モデルは次のようになりますフォーム用のUpdateView
と、フォームテンプレートに含まれているテーブルだけです。しかし、テーブルにページネーションを含めるには、同じページで2つのビューを使用する必要があります。私がデザインしたページが最後に次のようになります。
私は現時点では私の主な焦点は、フォームと同じページにテーブルを取得している時点でのスタイリングを心配していないです。現在の状態では、私が持っていない唯一のことは、テーブルの改ページです:
ビューは現在、次のようになります。
class CostDetail(UpdateView):
model = models.Cost
pk_url_kwarg = 'cost_pk'
template_name = 'main/cost_detail.html'
form_class = forms.CostDetailEditForm
success_url = reverse_lazy('cost_list')
私はDjangoの基礎となるミックスインを活用するという感覚を持っていますCBVの使用はおそらく行く方法ですが、私はこれで始める方法がわかりません。
すべてのヘルプははるかに私が働いているアプリは今、同様のアプローチを使用して、あなたの時間を
おかげ
それをクリアしてくれてありがとう!いくつかの調整を加えて動作させるように管理されています。あなたの助けをありがとう – BeeNag
@BeeNagあなたはそれが動作させるために必要な調整を投稿してもよろしいですか? – hlongmore
@hlongmore私がこれを覚えていることから、私が使用していたコードは変更されました。私はDashdrumの答えを跳躍のポイントとして使用しましたが、最終的に私は元のビューを使っていました。get_queryset 、get_context_dataとget_form(私は頭の上からどれが覚えていないかはフォームメソッドの1つでした)。私はその後、ビューからform_classを削除しました。両方のインスタンスで同じクエリーセットからデータが取得されたので、必要なデータとテーブルの両方をフォームに取り込むのは比較的簡単でした。私はそれが理にかなったことを願う – BeeNag