Django:以表格形式选择json文件并在视图中对其进行解析

时间:2019-03-21 20:48:42

标签: python json django

我的格式如下:

    <form action="" method="post" enctype="multipart/form-data">
        {% csrf_token %}
        <label for="file_id" style="margin-right:1em;">Import Innovations as JSON</label>
        <input type="file" id="file_id">
        <button style="margin-left:2em;" type="submit">Import</button>
    </form>

我的观点:

def index(request):
    if request.user.is_authenticated:
        if request.method == "POST":
            file = request.FILES
            # do some parsing and create the object here

我想做的是选择json文件并解析它,然后使用这些值在我的models.py中创建一个定义的对象,问题是我无法打开json文件来解析它,我尝试做file = request.FILES.read(),但得到'MultiValueDict' object has no attribute 'read'。我也尝试过json.loads(request.POST),但遇到以下错误: the JSON object must be str, bytes or bytearray, not QueryDict。  我不需要将json文件保存在任何地方,我只需要临时进行解析即可。正确的方法是什么?

1 个答案:

答案 0 :(得分:1)

您应该先为文件输入选择一个名称。

<input type='file' name='jsonfile'>

然后以其名称作为密钥获取文件:

file=request.FILES['jsonfile']