前提・実現したいこと
DjangoでWebサイトを作成しています。
テンプレート上で、ある親データと一対多の関係にある子データ達をforループにかけて表示すると、その順番はバラバラになってしまいます。
下記のとおり、一つのCompanyモデル(親)に対して、Itemモデル(子)を並べたいです。
Itemのid順に並んで欲しいと思っていますが、登録日時順になってしまうようです。
これをItemのid順に並べる方法はあるでしょうか?
テンプレート上で、company.item_set.allという呼び出し方をしているのが、問題なのでしょうか。
お分かりの方、ご教示頂ければ幸いです。
よろしくお願い致します。
該当のソースコード
python
1# models.py 2 3class Company(models.Model): 4 id = models.IntegerField(primary_key=True) 5 name = models.CharField(max_length=50) 6 7 8class Item(models.Model): 9 id = models.IntegerField(primary_key=True) 10 company = models.ForeignKey(Company, on_delete=models.CASCADE) 11 name = models.CharField(max_length=50)
python
1# views.py 2from django.views.generic import DetailView 3 4 5class CompanyDetailView(DetailView): 6 model = Company 7 template_name = 'company_detail.html'
html
1<!--company_detail.html--> 2{% for item in company.item_set.all %} # ←itemのid順に並べたいが、itemの登録日時順になってしまう。 3<tr> 4 <td>{{ item.id }}</td> 5 <td>{{ item.name }}</td> 6{% endfor %}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2020/05/08 08:55
2020/05/08 08:56