選択した親カテゴリに合わせて子カテゴリを表示する機能を作っています。
以下のページを参考にしています。
Django、選択した親カテゴリに合わせて子カテゴリを表示
models.py
python
1class ParentCategory(models.Model): 2 name = models.CharField('親カテゴリ名', max_length=255) 3 4 def __str__(self): 5 return self.name 6 7 8class Category(models.Model): 9 name = models.CharField('カテゴリ名', max_length=255) 10 parent = models.ForeignKey(ParentCategory, verbose_name='親カテゴリ', on_delete=models.PROTECT) 11 12 def __str__(self): 13 return self.name
ビューで親カテゴリーの一覧を取得し、それをテンプレートに渡すようにしておきます。
views.py
python
1def get_context_data(self, **kwargs): 2 context = super().get_context_data(**kwargs) 3 context['parent_list'] = ParentCategory.objects.all() 4 return context
テンプレートに渡された'parent_list'を使って、html内に書いたscriptタグの中に以下を書き込みます。
html
1<script> 2const categories = { 3 {% for parent in parent_list %} 4 '{{ parent.pk }}': [ 5 {% for category in parent.category_set.all %} 6 { 7 'pk': '{{ category.pk }}', 8 'name': '{{ category.name }}' 9 }, 10 {% endfor %} 11 ], 12 {% endfor %} 13}; 14 15以下省略、、、 16
上記のconst categories の中に、{% for %}や{{ parent.pk }}といった書き方をしています。
chromeでは上記のままで動くのですが、IE11では構文エラーが出るため、javascriptだけで書きたいです。
javascriptにオブジェクトを渡す方法や、全く違うやり方など、何か良い方法はないでしょうか?
また、このままの書き方でも、IE11で動くようにする方法などがありましたら、ご教示いただきたいです。
宜しくお願い致します。
回答1件
あなたの回答
tips
プレビュー