所属(仮にa,b,c)と所属に紐づいている場所(仮にa-1,a-2,b-1,c-1,c-2)を登録する以下のmodelを作成して2つのhtmlで段階的に表示したいです。
1:所属表示、
2:所属に紐づいた場所の表示
1から2へ遷移させるときに選択した所属に紐づいている場所のみを表示させたいのですが、
所属している場所は変更されることもあり、a-3,b-2が増えることがあります。
変化するデータベースの内容を制限して表示させる方法がわかりません。
初学者なのでどのように関数を入れたらいいのかコードでなにを記述すればよいのかが
わからないのでわかる方がお見えでしたらご教授お願いします。
/models.py class Department(models.Model): """所属部署の登録""" team_id = models.IntegerField(verbose_name='チームID') team = models.CharField(max_length=50, unique=True, blank=True, verbose_name ='チーム') line = models.ManyToManyField( Line, verbose_name ='ライン', blank=True ) def get_lines(self): return ",".join([str(p) for p in self.line.all()]) def __str__(self): return str(self.team)
/views.py def teamlist(request): object_team = Department.objects.all() print(object_team) return render( request, 'teamlist.html', {'object_team':object_team} ) def linelist(request): object_line = Department.objects.all() #print(object_line) print("team_name:",request.GET.get('test_team')) return render( request, 'linelist.html', {'object_line': object_line} )
/urls.py urlpatterns = [ path('linelist/', linelist, name='line_l'), path('teamlist/', teamlist, name='team_l'), ]
teamlist.html {% block content %} <div class="container"> {% for item in object_team %} <div class="alert alert-success" role="alert"> <p>チーム:<form action="{% url 'line_l' %}" method="get" autocomplete="off"> {% csrf_token %} {{ form }} {{ item.team }} <input type="hidden" name="test_team" id="test_team" value="{{ item.team }}"> <button type="submit">選択</button> </form></p> </div> {% endfor %} </div> {% endblock content %}
linelist.html {% block content %} <div class="container"> {% for item in object_line %} <div class="alert alert-priority" role="alert"> <p>チーム:{{ item.team }}</p> <div class="alert alert-success" role="alert"> <p>ライン:<form action="{% url 'cs_l' %}" method="get" autocomplete="off"> {% csrf_token %} {{ form }} {{ item.get_lines }} <input type="hidden" name="test_line" id="test_line" value="{{ item.get_lines }}"> <button type="submit">選択</button> </form></p> </div> </div> {% endfor %} </div> {% endblock content %}
回答1件
あなたの回答
tips
プレビュー