반응형
Django 모델 관리자 objects.create 문서는 어디에 있습니까?
나는 항상 읽습니다.
model = Model(a=5, b=6)
model.save()
그러나 나는 그것을 사용하는 오픈 소스 django 앱을 사용하는 오픈 소스 함수 생성이 존재하는 내부 관리자입니다.
model = Model.objects.create(a=5, b=6)
print model.pk
1
그래서 그것을 사용하는 것이 좋습니다? 또는 여전히 .save 메소드를 사용하는 것이 좋습니다. 나는 object.create가 무엇이든간에 그것을 만들려고 시도하지만 save는 pk가 지정합니다.
다음은 내가 문서입니다. https://docs.djangoproject.com/en/dev/topics/db/queries/#creating-objects
문서 색인에서 링크 된 "QuerySet API 참조" 페이지에 있습니다.
p = Person.objects.create(first_name="Bruce", last_name="Springsteen")
다음과 동일 :
p = Person(first_name="Bruce", last_name="Springsteen")
p.save(force_insert=True)
force_insert는 항상 새 개체가 생성됨을 의미합니다.
일반적으로 이것에 대해 걱정할 필요가 없습니다. 그러나 모델에 설정 한 수동 기본 키 값이 포함되어 있고 해당 값이 데이터베이스에 이미있는 경우 기본 키가 고유해야 할 때 생성 () 호출이 IntegrityError와 함께 실패합니다. 수동 기본 키를 사용하는 경우 예외를 처리 할 준비를하십시오.
create는 기본적으로 동일합니다. 아래는 생성을위한 소스 코드입니다.
def create(self, **kwargs):
"""
Creates a new object with the given kwargs, saving it to the database
and returning the created object.
"""
obj = self.model(**kwargs)
self._for_write = True
obj.save(force_insert=True, using=self.db)
return obj
인스턴스를 생성 한 다음 저장합니다.
기본적으로 두 가지 방법은 동일 합니다. Model.objects.create
Django 스타일에 더 적합하기 때문에 의 사용을 선호 할 수 있습니다.
반응형
'IT' 카테고리의 다른 글
날짜별로 DynamoDB 쿼리 (0) | 2020.09.25 |
---|---|
코드 완성은 어떻게 작동합니까? (0) | 2020.09.25 |
위치 : 절대 및 부모 높이? (0) | 2020.09.25 |
다중 사례 환경에서 HttpClient를 사용하는 모범 사례 (0) | 2020.09.25 |
PHP 배열 대 배열 — 반복하는 동안 성능 비교 (0) | 2020.09.25 |