【发布时间】:2022-09-26 17:12:51
【问题描述】:
我正在尝试从 django 过滤器中实现列表过滤器。第一个 \"type\" 是我希望我的过滤器基于的属性模型.py我的应用程序。
class detaileditems(models.Model):
title = models.CharField(max_length= 255)
type = models.CharField(max_length= 45, null=True)
pubdate = models.DateTimeField()
body = models.TextField()
image = models.ImageField(upload_to= \'images/\')
我创建了一个单独的过滤器.py在我调用过滤器的应用程序中。
import django_filters
from .models import detaileditems
class ListingFilters(django_filters.FilterSet):
class Meta:
model = detaileditems
fields = {\'type\': [\'exact\']}
接下来是我里面的函数视图.py文件-
from .models import detaileditems
from .filters import ListingFilters
def alldetailed2(request):
items = detaileditems.objects
listing_filter = ListingFilters(request.GET, queryset=items)
context = {
\'listing_filter\' : listing_filter,
\'items\': items,
}
return render(request, \'detailed2/detailed2.html\',context)
最后在我的 html 文件中 \"详细2.html\" 位于 \"detailed2\" 的应用程序模板文件夹中。
<div class = \"col-lg-6 col-md-8 mx-auto\">
<form method = \"get\">
{{ listing_filter.form }}
<button class=\"btn btn-sm btn-danger\" type=\"submit\">Search</button>
</form>
</div>
<div class = \"container\">
<div class = \"row row-cols-1 row-cols-sm2 row-cols-md-3 g-3\">
{% for listing in listing_filter.qs %}
<div class = \"col\">
{% url \'alldetailed2\' %}
</div>
{% endfor %}
</div>
</div>
我将其作为输出,其中同一页面未使用过滤结果进行更新。
这是我的文件夹结构,以便更好地理解。
标签: python django loops recursion filter