お世話になります。初心者ですので、初歩的なミスをしているかもしれないのですが、どうしても状況が改善しないので、お力をお貸しください。
前提・実現したいこと
実現したいことは、お会計の足した値をhtml上に表示したいです。
table1の方ですと、売上合計:22000
table2の方ですと、売上合計:45100
コードは下記のように書きました。
view.py def sales_total(request): queryset = SalesModel.objects.all().filter(pk__gte=1) b = 0 for i in queryset: b += i.bill i.sales_total = b print(i.sales_total) return render(request, 'list.html', {'queryset' : queryset})
list.html {% extends 'base.html' %} {% block content %} <div class="container"> {% for item in object_list %} <div class="alert alert-success" role="alert"> <p>テーブル番号 : {{ item.tablenumber }}</p> <p>お会計 : <a href="{% url 'bill' item.pk %}">{{ item.bill }}</a></p> <p>消費税 : <a href="{% url 'tax' item.pk %}">{{ item.tax_total }}</a></p> {% for i in queryset %} <p>売上合計 : <a href="{% url 'sales_total' %}">{{ i.sales_total }}</a></p> {% endfor %} <p>投稿時間 : {{ item.date }}</p> <a href="{% url 'detail' item.pk %}" class="btn btn-primary" role="button" aria-pressed="true">詳細画面へ</a> <a href="{% url 'delete' item.pk %}" class="btn btn-success" role="button" aria-pressed="true">削除画面へ</a> <a href="{% url 'update' item.pk %}" class="btn btn-info" role="button" aria-pressed="true">編集画面へ</a> </div> {% endfor %} {% endblock content %}
model.py class SalesModel(models.Model): tablenumber = models.CharField('テーブル番号', max_length=100) girlsdrink_confirmation = models.CharField('ドリンク別か込みか', max_length=50, choices=CHOICES) tax_confirmation = models.CharField('TAXありかなしか', max_length=50, choices=CHOICES2) tablecharge = models.IntegerField('セット料金') custermer = models.IntegerField('お客さんの人数') girlsdrink_count = models.IntegerField('ドリンクの杯数') staff_reservation_fee = models.IntegerField('指名料', null=True, blank=True) champagne_fee = models.IntegerField('シャンパン料金', null=True, blank=True) tax_total = models.IntegerField(null=True, blank=True) bill = models.IntegerField('お会計', null=True, blank=True) sales = models.IntegerField(null=True, blank=True) date = models.DateTimeField(default=timezone.now) singlecharge = models.IntegerField('シングルチャージ', null=True, blank=True) sales_total = models.IntegerField('売上', null=True, blank=True, default=0)
urls.py from django.urls import path from .views import billfunc, taxfunc, SalesCreate,detailfunc, HomeClass, SalesDelete, SalesUpdate, SaleList, sales_total urlpatterns = [ path('', HomeClass.as_view(), name='home'), path('list/', SaleList.as_view(), name='list'), path('bill/<int:pk>', billfunc, name='bill'), path('tax/<int:pk>', taxfunc, name='tax'), path('create/', SalesCreate.as_view(), name='create'), path('detail/<int:pk>', detailfunc, name='detail'), path('delete/<int:pk>', SalesDelete.as_view(), name='delete'), path('update/<int:pk>', SalesUpdate.as_view(), name='update'), path('sales_total/', sales_total, name='sales_total'), ]
試したこと
DjangoでDB(モデル)の値を画面に表示させたい
こちらの方と同じ内容だと思い、参考にしてみましたが、うまくいきませんでした。
補足情報(FW/ツールのバージョンなど)
{% for item in object_list %} <div class="alert alert-success" role="alert"> <p>テーブル番号 : {{ item.tablenumber }}</p> <p>お会計 : <a href="{% url 'bill' item.pk %}">{{ item.bill }}</a></p> <p>消費税 : <a href="{% url 'tax' item.pk %}">{{ item.tax_total }}</a></p> <p>投稿時間 : {{ item.date }}</p> <a href="{% url 'detail' item.pk %}" class="btn btn-primary" role="button" aria-pressed="true">詳細画面へ</a> <a href="{% url 'delete' item.pk %}" class="btn btn-success" role="button" aria-pressed="true">削除画面へ</a> <a href="{% url 'update' item.pk %}" class="btn btn-info" role="button" aria-pressed="true">編集画面へ</a> {% endfor %} </div> {% for i in queryset %} <p>売上合計 : <a href="{% url 'sales_total' %}">{{ i.sales_total }}</a></p> {% endfor %}
list.html上に表記したコードですと{% for item in object_list %}
のfor文と{% for i in queryset %}
のfor文が重なってしまうと考えたため、重ならないように上記のようなコードにしたのですが、どちらも表示されませんでした。
表示したい箇所は、list.html上に表記したように消費税のしたに売上合計を表示したいです。