반응형
특정 규칙을 적용하기 위해 unique_together
의 메타 옵션을 사용하려는 상황이 있습니다. 다음은 중간 모델입니다.
class UserProfileExtension(models.Model):
extension = models.ForeignKey(Extension, unique=False)
userprofile = models.ForeignKey(UserProfile, unique=False)
user = models.ForeignKey(User, unique=False)
class Meta:
unique_together = (("userprofile", "extension"),
("user", "extension"),
# How can I enforce UserProfile's Client
# and Extension to be unique? This obviously
# doesn't work, but is this idea possible without
# creating another FK in my intermediary model
("userprofile__client", "extension"))
다음은 UserProfile입니다.
class UserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
client = models.ForeignKey(Client)
감사.
해결 방법
당신은 할 수 없습니다.
unique_together
절은 SQL
고유 색인으로 직접 변환됩니다. 여러 테이블의 조합이 아닌 단일 테이블의 열에 만 설정할 수 있습니다.
하지만 직접 유효성 검사를 추가 할 수 있습니다. 간단히 validate_unique
메서드를 덮어 쓰고이 유효성 검사를 추가하면됩니다.
참조 페이지 https://stackoverflow.com/questions/4440010
반응형
'파이썬' 카테고리의 다른 글
파이썬에서 목록 목록의 열에 액세스하는 방법 (0) | 2020.10.19 |
---|---|
파이썬 conda 용 pip3 설치 (0) | 2020.10.19 |
파이썬 OpenCV에서 비디오 스트림을 보여주는 PyQt (0) | 2020.10.19 |
파이썬 Python에서 명시 적 루프없이 사용자 지정 형식으로 목록을 인쇄하는 우아한 방법이 있습니까? (0) | 2020.10.19 |
파이썬 Flask가 콘솔에 인쇄되지 않습니다. (0) | 2020.10.19 |
댓글