IndexView
内で2つ以上のクエリを実行しようとしていて、テンプレート内に結果を表示しようとしています。しかし、私はそれが言ってerroringなしget_context_data
にEntry.objects.filter(date=today_date)
とSavings.objects.filter(id=1)
の両方を追加するように見えることはできません。クラスベースビューで2つのモデルを照会してください
リバースの引数を持つ「エントリ更新」の「(」「」)とキーワード 引数「{} ' 見つかりません。 1つのパターン(s)は試してみました: [ 'トラッカー/エントリー/更新/(?P [0-9] +)/ $']を
どのように私は1つのビューに2つの異なるモデルからデータを引っ張って行くでしょう?具体的には、どのようにすればこのようなものを得ることができますか:
def get_context_data(self, **kwargs):
et = super(IndexView, self).get_context_data(**kwargs)
et['filter'] = Entry.objects.filter(date=today_date), (Savings.objects.filter(id=1))
return et
ご協力いただきありがとうございます!
views.py
class IndexView(generic.ListView):
template_name = 'argent/index.html'
context_object_name = 'object_list'
def get_queryset(self):
return Entry.objects.all()
def get_context_data(self, **kwargs):
et = super(IndexView, self).get_context_data(**kwargs)
et['filter'] = Entry.objects.filter(date=today_date)
return et
models.py
class Entry(models.Model):
date = models.DateField(blank=True, null=True,)
euros = models.CharField(max_length=500, blank=True, null=True)
comments = models.CharField(max_length=900, blank=True, null=True)
euros_sum = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
xrate = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
dollars_sum = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
daily_savings_dollars = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
daily_savings = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
def get_absolute_url(self):
return reverse('argent:detail', kwargs={'pk': self.pk})
def item_date(self):
row_title = self.date
return row_title
class Savings(models.Model):
total_spent_euros = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
total_spent_dollars = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
total_savings = models.DecimalField(max_digits=6, decimal_places=2, blank=True, null=True)
def get_absolute_url(self):
return reverse('argent:detail', kwargs={'pk': self.pk})
編集:私はこの記事に詳細を追加しました。
どのようなエラーが表示されますか?これは良いアプローチなので。新しいクエリーセットの結果をコンテキストに追加します。 object_listにはget_queryset()メソッドの結果があります。 – Wilfried
エラーは、ほとんどの場合、 'get_queryset'または' get_context_data'がすでに定義されていると述べています。その結果、再度使用することはできません。しかし、私がどのようにするかわからないのは、単一の 'get_queryset'または' get_context_data'関数内で複数のクエリを結合することです。私がしようとしているのは、 'Entry.objects.filter(date = today_date)'と 'Savings.objects.filter(id = 1)'からデータを取り出し、両方の結果をテンプレートに表示することです。 – grigs