如何解决Django_Filters:第一次加载时无需使用object.all显示所有项目
我是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 举报,一经查实,本站将立刻删除。