django - Django WeasyPrint - 导出过滤列表
问题描述
因此,我从名为“OrderListView”的 ListView 创建了一个 pdf 文件。现在我想将查询集传递给 pdf 文件。
为了更清晰,我将我的列表视图重写为函数视图。我需要找到一种方法将查询集传递给 pdf 视图。我正在使用 django-filter 来创建过滤视图。我有以下内容;
过滤器.py
class OrderFilter(django_filters.FilterSet):
class Meta:
model = Order
fields = {
'start_date': ['gte'],
'end_date': ['lte'],
}
视图.py
from .filters import *
# View to show a filtered list using django-filter
def order_list(request):
order_list = Order.objects.all()
order_filter = OrderFilter(request.GET, queryset=order_list)
start_date__gte = request.GET.get('start_date__gte','')
start_date__lte = request.GET.get('start_date__lte','')
return render(request, 'orders/order_list.html', {
'filter': order_filter,
'start_date__gte': start_date__gte,
'start_date__lte': start_date__lte,
})
# View to create a pdf file from the filtered view using WeasyPrint
def order_list_pdf(request):
# Edited: Create queryset
start_date__gte = request.GET.get('start_date__gte','')
start_date__lte = request.GET.get('start_date__lte','')
order_list = Order.objects.filter(
Q(start_date__gte=start_date__gte) |
Q(start_date__lte=start_date__lte)
)
order_filter = OrderFilter(request.GET, queryset=order_list)
response = HttpResponse(content_type="application/pdf")
response['Content-Inline'] = 'attachment; filename=filtered_list.pdf'.format()
html = render_to_string('pdf/pdf_booking_list_arrivals.html', {
'filtered_list': order_list,
})
font_config = FontConfiguration()
HTML(string=html).write_pdf(response, font_config=font_config)
return response
所以我尝试使用
start_date__gte = request.GET.get('start_date__gte','')
start_date__lte = request.GET.get('start_date__lte','')
并使用 url 传递查询
#edited
<a class="btn" href="{% url 'order_list_pdf' %}?start_date__gte={{ start_date__gte }}&start_date__lte={{ start_date__lte }}">Create PDF</a>
这确实会在 url 中创建查询,但不会过滤列表。生成的 pdf 正在工作,我只需要找到一种方法,只将过滤后的结果发送到 pdf 视图。
任何帮助,将不胜感激!
解决方案
推荐阅读
- angular-material - 除了通过属性设置角度材质按钮的样式吗?
- haskell - 在 Haskell 中使用泛型获取构造函数索引
- facebook-graph-api - 我正在尝试使用 facebook graph api 在节点 js 中发送 facebook 自定义应用程序事件
- python - 使用 pandas DataFrame 行的组合填充“计数矩阵”
- javascript - Javascript:一键打开多个网址
- html - 卡片布局中的内容在移动视图中不会缩小
- java - 多个 Spring @RequestMapping 标头
- javascript - 在 Eclipse Photon 中使用 async/await 验证错误
- c# - 三层c#asp.net数据库应用中OOP的正确使用
- spring-boot - Spring Boot 嵌入式 TomCat 添加执行器后无法启动