IT

Django 모델 관리자 objects.create 문서는 어디에 있습니까?

lottoking 2020. 9. 25. 08:20

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.createDjango 스타일에 더 적합하기 때문에 의 사용을 선호 할 수 있습니다.

참고 URL : https://stackoverflow.com/questions/9940674/django-model-manager-objects-create-where-is-the-documentation