Django가 기본 키 특성에서 .save()를 실행하면 먼저 SELECT를 수행하여 이미 존재하는지 확인한 다음 INSERT 또는 UPDATE를 수행할지 여부를 결정합니다. 고유하지만 기본 키 필드가 아니라 우아하게 동일한 작업을 수행 할 수있는 방법이 있습니까?생성하기 전에 유일한 값이 있는지 확인
기본적으로 모델은 다음과 같습니다 경우 :
class Subject(models.Model):
name = models.CharField(max_length=64, unique=True)
내가 '이름'은 PK를 만들 수,
>>> s=Subject(name="A new subject")
>>> s.save()
>>> s
<Subject: A subject>
>>> s=Subject(name="A new subject")
>>> s.save()
--- django.db.utils.IntegrityError: column name is not unique
반대로 오류를 던지고없이 다음을 수행 할 것이지만, 나는 비 Pk 고유의 자동 증가 형 ID를 만드는 우아한 Django 방법에 대해 확신하지 못했습니다.
도움을 주시면 감사하겠습니다. 고맙습니다!
하지만 모델 관리자 ('self.objects.filter .. ')를 사용하려면 [https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-objects]를 시도하지 마십시오. .') 모델 인스턴스 내에서. 당신은'Subject.objects.filter ...'를해야 할 것입니다. – hobs