2017-01-19 1 views
0

폼에서 데이터베이스의 기존 오브젝트를 편집 할 수 있습니까? 나는 예를 들어이 사용Django 폼에서 데이터베이스의 오브젝트 편집

obj_ex = Model(column = value, column2 = value2) obj_ex.save()

그러나이 데이터베이스에 내 개체를 업데이트하지 않습니다. 항목의 pk에 액세스하려고 시도하고 x의 pk로 항목 값을 저장하려고했지만 여전히 테이블을 업데이트 할 수 없습니다.

.update() 유형을 사용하여 개체를 업데이트하는 방법이 있습니까? 아니면 테이블을 업데이트하는 다른 방법이 있습니까?

감사합니다.

+0

양식의 코드를 게시하십시오. – 2ps

+1

참고 사항 [UpdateView] (https://docs.djangoproject.com/en/1.10/ref/class-based-views/generic-editing/#updateview) – Udi

답변

0

내가 테이블에서 여러 항목을 가지고 있기 때문에, 나는 업데이트 필드를 사용 표의 셀을 업데이트합니다. 이것은 내가 무슨 짓을 :가 호출 될 때 테이블을 업데이트 할 것 같은

o = Model.objects.filter(x=value0).values_list("id", flat=True) #where x is posted information getting the primary key (id). 
Model.objects.select_related().filter(id = o).update(column = value, column2 = value2) 

업데이트 필드가 .save() 필요하지 않습니다.

올바른 방향으로 나아 갔기 때문에 그의 대답에 대해 우디에게 감사하고 싶습니다.

+1

'.update()를 호출하면 '.save()'메소드에는 때로는 일부 기능이 포함되어 있습니다. – Udi

+1

보십시오 : Model.objects.filter (x = value0) .update (column = value, column2 = value2)' – Udi

+0

감사합니다. 첫 번째 코멘트는 무엇을 의미합니까? '.update()'를 사용하는 것이'.save()'를 사용하는 것보다 나쁩니 까? 나는 장고에 익숙하지 않고 내 길을 배웠다. – GreenSaber

1

대신에 :

새로운 인스턴스 (나중에 새로운 DB 기록)을 작성
obj_ex = Model(column=value, column2=value2) 

시도 :

o = Model.objects.get(pk=1234) # load instance with id=1234 to memory from db 
o.column = value 
o.column2 = value2 
o.save() 
관련 문제