modelA,viewA,urlsA,templateA,modelB,viewB,urlsB,templateBがあるとします。
それぞれAはA、BはBで繋がっています。
modelAの1つのフィールドであるlineをmodelBでForeignKeyで関連modelとしています。
このlineの情報を持ってきてtemplateAからtemplateBへ遷移したいですが、lineの情報が関係ない表示を得てしまいます。下記で説明します。
modelA #省略しています class Department(models.Model): line = models.CharField(max_length=50,null=True, unique=True, blank=True, verbose_name ='ライン')
urlsA,viewAとtemplateAでlineの表示を下記のようにして
urlsA urlpatterns = [ path('linelist/<int:pk>', linelist, name='linelist'), path('teamlist/', teamlist, name='teamlist'), ]
viewA def linelist(request, pk):# 関数にitem.pkの情報を渡す team = Team.objects.get(pk=pk)# 追加 object_line = Department.objects.filter(team=team)# 変更 return render( request, 'linelist.html', {'object_line': object_line} )
templateA {% block content %} <div class="col-10 offset-1"> <table class="table table-striped table-bordered"> <thead> <tr> <td>ライン</td> </tr> </thead> <tbody> {% for item in object_line %} <tr> <td><a href={% url 'csdc_list' item.pk %}>{{ item.line }}</a></td><!--変更 item.pkという情報をurl.pyに渡す--> </tr> {% endfor %} </tbody> </table> </div> {% endblock content %}
このtemplateAからtemplateBへ遷移するときにmodel,views,urls,templateはBになる。
遷移時にmodelAと同じlineの情報を持ったものだけを表示させたい。
modelB #省略しています class Dev_Check_List(models.Model): line = models.ForeignKey(Department, on_delete=models.CASCADE, verbose_name='ライン')
urlsB #省略しています urlpatterns = [ path('csdc_list/<int:pk>', listfunc, name='csdc_list'), ]
viewB def listfunc(request, pk): object_cs = Dev_Check_List.objects.filter(pk=pk) line_name = request.GET.get('line_name') return render(request, 'csdc_list.html', {'object_cs': object_cs})
templateB {% block content %} {% if user.is_authenticated %} <div class="container"> <a href="{% url 'cs_create' %}" class="btn btn-info md-2" tabindex="-1" role= "button" aria-disabled="ture">新規作成</a> {% for item in object_cs %} <p>ライン:{{ item.line }} </p> <div class="alert alert-success" role="alert"> <p>ラベル:{{ item.label }}</p><!--省略しています--> <a href="{% url 'update_cs' item.pk %}" class="btn btn-info" tabindex="-1" role="button" aria-disabled="true">編集画面へ</a> <a href="{% url 'delete_cs' item.pk %}" class="btn btn-secondary" tabindex="-1" role="button" aria-disabled="true">削除画面へ</a> <a href="{% url 'detail_cs' item.pk %}" class="btn btn-primary" tabindex="-1" role="button" aria-disabled="true">詳細画面へ</a> </div> {% endfor %} <a href="{% url 'logout' %}">logout</a> </div> {% else %} please login {% endif %} {% endblock content %}
対処がわかるかたご教授ください。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。