나는 테이블로 승객 정보의 목록을 표시 웹 페이지를 목록에서 단일 값을 업데이트. ARRIVAL_TIME, 항공편 번호 등사전
사용자가 자신이이 열을 편집 할 수 있습니다 정보를 특정 열을 클릭 그래서 때 테이블을 편집했습니다 : 이것은 보통의 물건입니다. 마지막으로 확인을 클릭하면 값과 행 번호와 함께 편집 된 열만 전송 한 데이터에서 목록의 행을 찾고 키를 찾아 원래 값을 업데이트한다고 가정합니다.
json으로 값이 같은 열 모양을 편집 할 수 :
[{u'classname': u'flight', u'column': 6, u'value': u'F1521', u'row': 0}, {u'classname': u'flight', u'column': 6, u'value': u'FI521', u'row': 1}]
내가 값을 업데이트하기 위해 지금까지 가지고있는 코드는 다음과 같습니다
# Original data
query = UploadOrderModel.objects.filter(hashId = receiptNr)
# Gives me a list of dictionaries containing these keys
data = query.values("office", "reserv", "title","surname","firstN",
"arrival", "flight", "transferF", "hotelD", "tour")
# Update
json_dump = json.loads(request.body)
if json_dump:
for d in json_dump:
# get row number
row = int(d['row'])
# updates dictionary value at row
data[row][d['classname']] = d['value']
을하지만이 업데이트되지 않습니다 가치. 올바른 값 업데이트지고 있을지 확인하고 그런 경우가 아니라, 행이 올바른 그래서, 내가 인쇄 할 경우 :
data[row][d['classname']]
은 내가 업데이트 할 요소를 얻을. 내가 여기에서 정말로 분명한 어떤 것이 분명합니다. 대신 전체 행을 업데이트해야합니까? 그래서 에 전체 사전을 현재 위치로 업데이트 하시겠습니까?
편집 :
아직 문제가 있습니다. 첫째로, 나는 당신의 좋은 대답을 잘못 읽었습니다. 나는 당신이 값()이 쓰기 가능한리스트를 반환하지 않는다는 것을 의미한다고 생각했다. 어리석은 나를. 모델 저장은 나중에 코드에서 수행되며 예상대로 작동합니다. 그러나 나는 아직도 전혀 업데이트되지 않습니다 내가 갱신에 노력하고있어 위치에서 사전의 문제가있다 :/
'유형 (데이터) 그렇지? – jfs
이 맞으면 데이터가 목록입니다. 그래서 내가 행 = 0, 유형 (데이터 [0]) 색인 0에 dict, 그래서 나는 데이터 [0] [키] = newValue 일을했을 줄 알았는데? – Donna
나는 당신이 장고와 함께 일하고 있다고 가정하고있다. afaik'QuerySet.values ()'는 값을 가진 쓰기 가능한 사전을 반환하지만 해당 사전에 대한 변경 사항은 모델에 저장되지 않습니다. 완료되면 모델을 올바르게 쿼리하고'save()'함수를 호출해야합니다. – lyschoening