说,我在views.py
中有2个视图:Fetching_information_view
和Processing_view
。
在Fetching_information_view
中,我正在获取"home.html"
页面上以表格格式显示给用户的信息。没关系。
现在,我也为每行获得一个CSV URL。我不希望用户单击CSV URL时应打开CSV。相反,当用户单击它时,它应该转到Processing_view
,并且应该在另一个HTML页面上投放,例如"process.html"
。
CSV URL:
/some_bucket/some_csv_file.csv?AWSAccessKeyId=some_id&Expires=1234&Signature=some_signature
所需的URL:
http://example.com/process.html?file=some_bucket/some_csv_file.csv?AWSAccessKeyId=some_id&Expires=1234&Signature=some_signature
现在,如何从Processing_view
视图调用Fetching_information_view
并发送文件信息?它应该在后端处理并在process.html
上显示结果。
这是我在首页上显示的表格:
我已经为我正在使用的views.py编写了示例代码:
def process_data(request):
# what should come here?
# Display in process.html
def home(request):
some_data = SomeTable.objects.filter(user = request.user)
args = {"some_data": some_data}
# display as table on home.html, including URLs it is carrying
return render(request, "home.html", args)
答案 0 :(得分:2)
如果您不想公开CSV文件的URL,请不要将其添加(也不要公开URL参数)到home
视图和模板的上下文中。 / p>
因此,假设您已经为process_view
视图创建了名为process_data
的urlpattern,则在您的 home.html 模板中,您只需使用href="{{% url 'process_view' %}?id={{ id }}"
即可附加对象的id
到您请求的URL参数。
然后在process_data
视图中,您可以通过id
来获得id = request.GET.get('id')
,并使用id
来获取模型,并重建CSV网址和文件参数。>