現在、DjangoのListViewで品目マスタ表みたいなものを表示していてデフォルトで1ページに100件表示するようにしています。表示件数をプルダウンで自分で指定できるようにしたいのですが以下のコードではうまくいきませんでした。
どなたかご教授いただけないでしょうか?
python
1view.py 2 3from django.views.generic import ListView, DetailView 4from insert_data.models import Item, Order 5 6class ItemMasterList(ListView): 7 """品目マスタ一覧""" 8 template_name = 'master_management/item_master_list.html' 9 context_object_name = 'item_master_list' 10 model = Item 11 paginate_by = 100 # 1ページあたり100件表示 12 ordering = ['item_code'] 13 14 def paginate(self): 15 paginate_by = self.request.GET.get('paginate_by') 16 17 return paginate_by 18 19 20 def get_context_data(self, **kwargs): 21 context = super().get_context_data(**kwargs) 22 context['title'] = context['page_header'] = "品目マスタ一覧" 23 24 return context 25 26 def get_queryset(self): 27 q_item_code = self.request.GET.get('item_code') 28 q_item_name = self.request.GET.get('item_name') 29 q_small_class_code = self.request.GET.get('small_class_code') 30 q_small_class_name = self.request.GET.get('small_class_name') 31 q_medium_class_code = self.request.GET.get('medium_class_code') 32 q_medium_class_name = self.request.GET.get('medium_class_name') 33 q_register_datetime_st = self.request.GET.get('register_datetime_st') 34 q_register_datetime_end = self.request.GET.get('register_datetime_end') 35 q_final_update_employee_code = self.request.GET.get('final_update_employee_code') 36 q_final_update_employee = self.request.GET.get('final_update_employee') 37 q_final_update_datetime_st = self.request.GET.get('final_update_datetime_st') 38 q_final_update_datetime_end = self.request.GET.get('final_update_datetime_end') 39 40 if q_register_datetime_st and q_register_datetime_end and q_final_update_datetime_st and q_final_update_datetime_end: 41 object_list = Item.objects.filter( 42 item_code__contains=q_item_code, item_name__contains=q_item_name, 43 small_class_code__contains=q_small_class_code, small_class_name__contains=q_small_class_name, 44 medium_class_code__contains=q_medium_class_code, medium_class_name__contains=q_medium_class_name, 45 register_datetime__gte=q_register_datetime_st, register_datetime__lte=q_register_datetime_end, 46 final_update_employee_code__contains=q_final_update_employee_code, 47 final_update_employee__contains=q_final_update_employee, 48 final_update_datetime__gte=q_final_update_datetime_st, final_update_datetime__lte=q_final_update_datetime_end 49 ).distinct() 50 else: 51 object_list = Item.objects.all() 52 return object_list

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/02/27 05:20
2020/02/27 05:45
2020/02/27 05:48
2020/02/27 06:50
2020/02/27 06:51
2020/02/27 06:51