【问题标题】:How to process data from DataTables Editor in Django?如何在 Django 中处理来自 DataTables Editor 的数据?
【发布时间】:2018-08-02 07:49:40
【问题描述】:

我正在尝试在 Django 视图中处理通过 DataTables Editor 插件发送的数据。

接收到的 request.POST 长这样:

{'action': 'edit',
 'data[3115][row1]': 'value1',
 'data[3115][row2]': 'value2',
 'data[3115][row3]': 'value3',
 'data[3115][row4]': 'value4',
 'data[3115][row5]': 'value5'}

其中 3115 是我的模型的主键。

在 Django 视图中,从 POST 数据中获取 PKmodel.row1model.row2model.row3、... 值的预期方法是什么?

所需的输出类似于

result = {
    'pk': 3115,
    'row1': 'value1',
    'row2': 'value2',
    'row3': 'value3',
    'row4': 'value4',
    'row5': 'value5'
}

【问题讨论】:

  • 你想要的输出是什么?
  • 我需要类似:{'pk': 3115, 'row1': value1, 'row2':'value2'...}

标签: python ajax django datatables jquery-datatables-editor


【解决方案1】:

你可以试试这个:

import re

a = {'action': 'edit',
     'data[3115][row1]': 'value1',
     'data[3115][row2]': 'value2',
     'data[3115][row3]': 'value3',
     'data[3115][row4]': 'value4',
     'data[3115][row5]': 'value5'}

d = {} # your desired result

for k,v in a.items():
    if k.startswith('data'):
        r = re.match('data\[(\d+)\]\[(\w+\d+)\]$', k)
        if r:
            d['pk'] = r.groups()[0]
            d[r.groups()[1]] = v

d 将是:

{'pk': '3115',
 'row1': 'value1',
 'row2': 'value2',
 'row3': 'value3',
 'row4': 'value4',
 'row5': 'value5'}

【讨论】:

    猜你喜欢
    • 2020-06-28
    • 2016-11-01
    • 2011-09-22
    • 1970-01-01
    • 2022-07-06
    • 1970-01-01
    • 1970-01-01
    • 2022-01-11
    • 1970-01-01
    相关资源
    最近更新 更多