Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将python对象传递给视图Django_Python_Django_Django Views - Fatal编程技术网

将python对象传递给视图Django

将python对象传递给视图Django,python,django,django-views,Python,Django,Django Views,感谢第一次反馈,似乎我的解释太混乱了,我添加了一些代码块和图片来说明 因此,您可以使用csv文件上的域列表填写表单。 分析列表中的域并将其传递到“多结果”视图: def multiresult(request, *args, **kwargs): input_file = request.FILES['inputFile'] def several_scoring(domain_file): domain_name_list = [] line

感谢第一次反馈,似乎我的解释太混乱了,我添加了一些代码块和图片来说明

因此,您可以使用csv文件上的域列表填写表单。

分析列表中的域并将其传递到“多结果”视图:

def multiresult(request, *args, **kwargs):
    input_file = request.FILES['inputFile']

    def several_scoring(domain_file):
        domain_name_list = []
        line = domain_file.readline().decode("utf-8")
        while line != "":
            domain_name_list.append(line)
            line = domain_file.readline().decode("utf-8")

        domain_list = []
        for line in domain_name_list:
            domain = Domain(line.rstrip())
            domain.start_scanning()
            domain_list.append(domain)

        return domain_list

    domain_list = several_scoring(input_file)
    headers = domain_list[0].header_grading.displayable_list
    context = {
        'domain_list': domain_list,
        'headers': headers,
        'domain_list_dict': json.dumps([domain.__as_dict__() for domain in domain_list])
    }
    return render(request, "multiresult.html", context)
在模板上,我放置了一个下载按钮,通过下载视图将这些结果保存到生成的csv文件中:

由于url,当前的下载视图为get domain\u list\u dict:

<a href="{% url 'domain_analyse:download' domain_list=domain_list_dict %}" method="post" >
    <button type="button" class="btn btn-info btn-lg">
        <i class="fa fa-download"></i> Télécharger les résultats
    </button>
</a>

下载视图能够在获取数据时生成csv文件而不会出现问题

我的问题是如何在不使用url的情况下将域列表(json格式)传递到下载视图?就像django自动处理表单一样,我想更改request.POST,但我真的不知道该怎么做。我应该在客户端使用javascript,还是可以使用jinja或django机制

如果信息仍然丢失,请告诉我


谢谢

如果我理解正确,您希望用户能够下载用户填写表单后生成的文件(.csv)。尽管如此,您不希望将数据存储在数据库或本地。是这样吗

换句话说,我想象的是你有一个页面,上面有生成的表和一个按钮,上面写着“下载CSV”,或者类似的东西。 您可以创建一个URL来下载该.csv,生成它,并在响应中使用“内容处置”标题。就像这个答案:

你问的问题很不清楚。您应该添加一些代码并解释相关问题。但是如果用户发出POST请求,您可以将信息存储在
请求中。POST
request.POST
在服务器端是不可变的。不过,描述有点“混乱”。您能否提供一些示例程序的MWE,例如构造响应,以便明确您的目标是什么?json将其转储到str到模板上下文中,并在客户端json中加载它?因此,您可以保留数据模型并在浏览器中随意使用它。我更新了我的第一篇文章@布鲁诺·冈萨尔维斯:你说得对。但你的问题并不能解决我的问题。我不知道如何从客户端更改post请求。