如何将对象发送回Django视图并通过索引访问它

2024-06-25 23:07:47 发布

您现在位置:Python中文网/ 问答频道 /正文

在我的HTML中我有一个对象data,数据最初是从views.py的Django中的SQL查询中检索出来的,并使用render()传递给HTML

data看起来像这样

data1= {
        0:{
            pk:1,
            model:"binaryQuestionApp.painting",
            fields: {title:'Pearl',artist:"vermeer"},
        },
        1:{
            pk:2,
            model:"binaryQuestionApp.painting",
            fields: {title:'Sand',artist:"vermeer"},
        }
    }

我使用以下JS将data发送回views.py(我使用this question创建csrftoken)

^{pr2}$

现在,数据被发送回服务器,但是我在访问它时遇到了问题。我的views.py里有这个

if request.method == 'POST':
    data = request.POST
    # so far it works. But i can not index like this:
    print(data[0]['pk']
    # instead I need to index it strangely, like this:
    print(data['data[0][pk]']) # note the entire key is a string

如何将数据发送到Django,以便使用data[0]['pk']在views.py中访问它?在


Tags: 数据djangopyfieldsdatamodeltitleartist
1条回答
网友
1楼 · 发布于 2024-06-25 23:07:47

我自己想出来的。在

首先需要将对象解析为JSON。在

var postdata = {
    data: JSON.stringify(data),
    'csrfmiddlewaretoken': csrftoken
};

然后postdata可以使用(note$,这里使用jquery)发送

^{pr2}$

{{cd2>需要在cd3}方法中使用:

import json 
def index(request):

    if request.method == 'POST':
        data = request.POST.get('data')
        data = json.loads(data)
        print(data[0]['model'])  # this indexing will depend on your own setup, works just like any python dict

相关问题 更多 >