问题描述
我是Django_Filter的新手
我注意到,django_filter总是在首次加载时加载所有对象,尽管尚未过滤。由于数据库中的表中有大量数据。因此,不必要地加载所有对象会导致性能下降。
在我看来这是不合理的。因此,更好的方法是,只要单击按钮,它就应该过滤结果。
如何设置Django_Filter以便仅在单击搜索按钮时显示结果(我不想使用objects.all()列出所有项目。)
这些是我与此问题相关的代码
model.py
Lettuce
filter.py
from django.db import models
class Product_Type(models.Model):
productype_name=models.CharField(max_length=100)
class Inventory(models.Model):
serial_number=models.CharField('Serial Number',max_length=50)
product_type=models.ForeignKey( Product_Type,on_delete=models.CASCADE,verbose_name='Product Type')
views.py
import django_filters
from django_filters import *
from app.models import *
class InventoriesForcopy_Filter(django_filters.FilterSet):
class Meta:
model=Inventory
fields=['product_type','serial_number']
inventory_add_copy.html
def list_inventory_for_copy(request,proj_id):
inventories_all = Inventory.objects.all()
xfilter = InventoriesForcopy_Filter(request.GET,queryset=inventories_all)
inventories = xfilter.qs
context = {'project_id': proj_id,'xfilter': xfilter,'inventories': inventories}
return render(request,'app/inventory_add_copy.html',context)
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)