我可以选择一个type =“ file”吗?

时间:2019-11-20 20:59:12

标签: javascript python html django

好,所以我需要实现一个下拉菜单,从中可以从文件夹目录中选择一些文件。我已经具有显示文件的下拉列表,但是在进行查询时出现此错误django.utils.datastructures.MultiValueDictKeyError:'xxxxxx',我不确定是要传递整个文件还是只是传递文件名。我可以做为<select type="file">吗?还是可以将隐藏的输入type =“ file”连接到选择项?谢谢

1 个答案:

答案 0 :(得分:1)

您的下拉列表应该只是文件名列表,您可以在清理输入时将其转换为路径

class FileSelectForm(forms.Form):
    file = forms.ChoiceField(choices=list_of_files)

    def clean_file(self):
        file_name = self.cleaned_data['file']
        file_path = ...  # You'll need to convert the name to a full path here
        return open(file_path)

现在,当您的表单提交并有效时,您将在清除的数据中拥有一个用于选定文件的打开文件对象

form = FileSelectForm(request.POST)
if form.is_valid():
    form.cleaned_data['file']  # This will be a file object