2023. 4. 9. 10:11ㆍdjango/Model
for 루프에서 데이터가 User 모델에 이미 존재하는지 확인하여, 존재하면 해당 데이터를 업데이트하고, 존재하지 않으면 새로운 데이터를 추가할 수 있습니다.
from django.contrib.auth.hashers import make_password
# MyModel의 데이터를 가져와서 User 모델에 저장
for data in MyModel.objects.all():
try:
# User 모델에서 username에 해당하는 데이터 가져오기
user = User.objects.get(username=data.username)
# username이 이미 존재하는 경우, password 등 업데이트
user.password = make_password(data.password)
# 필요한 필드를 모두 업데이트
user.save()
except User.DoesNotExist:
# username이 존재하지 않는 경우, 새로운 데이터 추가
user = User(
username=data.username,
password=make_password(data.password),
# 필요한 필드를 모두 추가
)
user.save()
위의 코드에서는 try 문과 except 문을 사용하여, User 모델에서 username에 해당하는 데이터를 가져와서 데이터가 이미 존재하는지 확인합니다. User.DoesNotExist 예외가 발생하면, except 문에서 새로운 데이터를 추가합니다. 데이터가 이미 존재하는 경우에는 except 문에서 처리하지 않고, try 문 이후에 password 등 필요한 필드를 업데이트하고, save() 메서드를 사용하여 데이터를 저장합니다.
'django > Model' 카테고리의 다른 글
todo = Todo.objects.all() serializer = TodoSerializer(todo, many=True) (0) | 2024.01.31 |
---|---|
from django.contrib.auth.models import AbstractUser 에서 상속받아 class User 를 만들었다. 이메일번호를 받아서 calss User에서 검색을 할려면 (0) | 2023.04.12 |
django에서 1개의 모델을 읽어서 다른 모델의 키를 읽어 있으면 업데이트 없으면 insert 하는 방법 (0) | 2023.04.09 |
django에서 1개의 모델을 읽어서 다른 모델로 업데이트 하는 방법 (0) | 2023.04.09 |
장고 모델 폼 (Model Form) (0) | 2023.03.02 |