前提・実現したいこと
1つのtemplateに2つの異なったmodelのリストを画面半々で表示しようとしています。
必要なクエリは取れているものの下記のようなエラーがでます。
エラーで言っているline_td <QuerySet [<InsLedger_Td: A>, <InsLedger_Td: B>]>はDep_TdModelのinstanceではなく、InsLedger_TdModelのinstanceなのでその通りなのですが、
両方使いたい場合にこの改善の仕方がわかりません。
Insledger_Tdにクエリセットを使うことはできないのでしょうか。
解決策がわかる方ご教授ください。
発生している問題・エラーメッセージ
ValueError at /tdilcs_list/6 Cannot use QuerySet for "InsLedger_Td": Use a QuerySet for "Dep_Td". ▼ Local vars first_line <Dcl_Td: SK_32> kwargs {'pk': 6} line <Dep_Td: SK_32> line_td <QuerySet [<InsLedger_Td: A>, <InsLedger_Td: B>]> object_cs <QuerySet [<Dcl_Td: SK_GR_32>]> queryset <QuerySet [<Dcl_Td: SK_GR_32>]> request <WSGIRequest: GET '/tdilcs_list/6'> self <basetd.views.Td_LdcView object at ...>
###エラーで引っかかっているコード
views.py insredtd_list = InsLedger_Td.objects.filter(line=line_td)
vews.py class Td_LdcView(generic.View): initail = {} template_name = os.path.join('tdilcs_list.html') model = Dcl_Td def get_context_data(self, **kwargs): context = super(Td_LdcView, self).get_context_data(**kwargs) context['insledtd_list'] = InsLedger_Td.objects.all return context def get(self, request, **kwargs): try: line = Dep_Td.objects.get(**kwargs) line_td =InsLedger_Td.objects.filter(line=line) print(line) print(line_td) except Dep_Td.DoesNotExist: line = None object_cs = Dcl_Td.objects.filter(line=line) first_line = Dcl_Td.objects.filter(line=line).order_by('line')[0] queryset = Dcl_Td.objects.filter(line=line) insredtd_list = InsLedger_Td.objects.filter(line=line_td) InsLedger_Td.objects.filter(line__in=insredtd_list.line.all().value_list('lines_td')) return render(request, self.template_name, {'object_cs':object_cs, 'first_line':first_line, 'insredtd_list':insredtd_list})
template
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。