2010-07-11 4 views
1

Ok! 나는이 모델을 가지고있다 :장고. db로 데이터를 업데이트하십시오. 쉬운 질문

나는이 모델의 데이터를 mssql 데이터베이스에서 가져 와서 저장하고있다. 이 같은.

mysql_name='somedata'   #this data come from some connection with mssql 
mssql_description='somedata' #this data come from some connection with mssql 
mssql_created='somedata'  #this data come from some connection with mssql 

난 내 MySQL 데이터베이스에 필드를 만들고

mymodel=my(name=mysql_name, description=mssql_description, created=mssql_created) 

mymodel.save() 

을 저장하고있어 지금은 내 데이터베이스입니다. 내 데이터베이스를 채울 수 있도록 루프에서 이렇게 해요.

그런 다음 원격 MSSQL 서버의 데이터를 타임 스탬프로 확인해야합니다. 나는 SQL 요청을했다. 그래서 나는 업데이트 된 데이터 만 얻는다. 끝 오래된 데이터를 덮어 씁니다.

오래된 데이터를 덮어 쓰는 방법은 무엇입니까? 나는 조금 혼란스러워.

이렇게 될 수 있습니까?

mymodel=my.objects.get(name=mysql_Name) 
    mymodel.description=new_updated_description 
    mymodel.save 

하지만 난 전혀이 필드가없는 경우? .... 나는 내가 그것을있는 경우 내, 데이타베이스에 첵해야

? 방법....?

답변

0

모델 관리자에서 get_or_create을 사용하여 모델의 새 인스턴스를 만들거나 기존 인스턴스를 업데이트 할 수 있습니다. 예를 보려면 docs를 참조하십시오.

1

동일한 PK를 사용하는 한 행을 덮어 씁니다. 가장 쉬운 방법은 get() 기존 행, 필드 수정 및 save()입니다.