Как обрабатывать данные из редактора DataTables в Django?

Я пытаюсь обработать данные, отправленные через плагин DataTables Editor, в представлении Django.

Полученный запрос выглядит так:

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

где 3115 - это первичный ключ моей модели.

Каков предполагаемый подход в представлении Django, чтобы получить PK а также model.row1, model.row2, model.row3... значения из данных POST?

Желаемый результат будет что-то вроде

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

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'}
Другие вопросы по тегам