사전

2014-03-04 2 views
0

나는 테이블로 승객 정보의 목록을 표시 웹 페이지를 목록에서 단일 값을 업데이트. 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']] 

은 내가 업데이트 할 요소를 얻을. 내가 여기에서 정말로 분명한 어떤 것이 분명합니다. 대신 전체 행을 업데이트해야합니까? 그래서 에 전체 사전을 현재 위치로 업데이트 하시겠습니까?

편집 :

아직 문제가 있습니다. 첫째로, 나는 당신의 좋은 대답을 잘못 읽었습니다. 나는 당신이 값()이 쓰기 가능한리스트를 반환하지 않는다는 것을 의미한다고 생각했다. 어리석은 나를. 모델 저장은 나중에 코드에서 수행되며 예상대로 작동합니다. 그러나 나는 아직도 전혀 업데이트되지 않습니다 내가 갱신에 노력하고있어 위치에서 사전의 문제가있다 :/

+0

'유형 (데이터) 그렇지? – jfs

+0

이 맞으면 데이터가 목록입니다. 그래서 내가 행 = 0, 유형 (데이터 [0]) 색인 0에 dict, 그래서 나는 데이터 [0] [키] = newValue 일을했을 줄 알았는데? – Donna

+3

나는 당신이 장고와 함께 일하고 있다고 가정하고있다. afaik'QuerySet.values ​​()'는 값을 가진 쓰기 가능한 사전을 반환하지만 해당 사전에 대한 변경 사항은 모델에 저장되지 않습니다. 완료되면 모델을 올바르게 쿼리하고'save()'함수를 호출해야합니다. – lyschoening

답변

0

좋아, 내가 문제가 무엇인지 알게되었습니다. 그것은 ValuesQuerySet에 불과 보이는

장고 값은() 사전의 목록을 반환하지 않습니다. 일반 목록과 마찬가지로이 목록에서 업데이트를 수행 할 수 없습니다.

나는 사전의 목록으로 선회했다해야했다 모두`하지`dict` 그것은,

updates = [item for item in data]