2015-08-18 9 views
0

Я пытаюсь сохранить данные в 2D массива в базе данных PostgreSQL, данные хранятся следующим образом:Update Column базы данных PostgreSQL в Django

"[('User 1', 'User 2', 'User3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '')]" 

Это представляет собой единый массив в пределах одного столбца из базы данных, эти данные доступны через следующий код Python, который запрашивает правильную строку в базе данных, а затем соответствующий столбец

q = DBReports.objects.all().filter(name__contains = username) 
q = q.values_list(columnName) 

для того, чтобы перебирать данных, полученных, он затем помещают в список

users_list = ast.literal_eval(q[0][0]) 

Правильный массив внутри колонны затем выбирается с помощью следующего кода:

for list in users_list: 
       if user in list[2]: 
        listToUse = list 

Проблема я бегу в том, что теперь с полученными данными, мне нужно, чтобы изменить его и сохраните в базы данных (listToUse изменяются с пробелами заполненных), так что массив может теперь, например, представляет

"[('User 1', 'User 2', 'User3', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '19')]" 

Как бы я идти об обновлении данных, которые хранятся в массиве, или заменить массив с новым созданный список той же структуры, Я использую абстракцию базы данных django для обработки всех данных.

+0

Общее правило при использовании массивов в базах данных является то, что если вам нужно найти в этом массиве, не использовать массивы. – e4c5

ответ

0

Это было решено, беря всю информацию из возвращаемого набора запросов, сохраняя это в переменных/списке, обновляя эти переменные с необходимой информацией, а затем сохраняя это в базе данных ,

Запрос информации:

q = DBReports.objects.all().filter(name__contains = assessor) 
qValues = q.values_list(columnName) 

if len(qValues) > 0: 
      users_list = ast.literal_eval(qValues[0][0]) 

      usernameToAppend = q[0].username 
      nameToAppend = q[0].name 
      mn= users_list[0][1] 
      EOS= q[0].EOS 
      RW= q[0].RW 
      temp = (assessor, mn, assessee, '','','','','','','','','','','','','','','','','','') 
      users_list.append(temp) 
      recordToAppend = DBReports(username = usernameToAppend,name = nameToAppend, RW = users_list, EOS = evaluationsOfSelf, RW = RW) 
Смежные вопросы