둘 중 하나에서 고유하지 않은 열로 두 모델을 결합하고 싶습니다. 외래 키 필드를 사용django에서 고유하지 않은 두 개의 열에 어떻게 가입합니까?
는class Ctystate(models.Model):
ctystate_id = models.IntegerField(primary_key=True)
zip5 = models.IntegerField()
[...]
class Addr2zip(models.Model):
addr2zip_id = models.IntegerField(primary_key=True)
ctystate = models.ForeignKey(Ctystate, db_column='zip5', to_field='zip5')
zip5 = models.IntegerField()
[...]
단지 모델 유효성 검사 오류가 발생합니다
Field 'zip5' under model 'Addr2zip' must have a unique=True constraint.
내가 모두에서 'zip5'필드를 사용하여이 두 모델에 참여할 수있는 방법이 있나요? 결과에 중복이 생길 수는 있지만 필터에 사용될 다른 보호 장치가 있다는 것을 알고 있습니다.
나는 또한 중간 테이블을 갖고 싶지 않습니다. 해야만한다면, 나는 내 자신의 SQL을 작성할 수 있지만 가능한 한 ORM을 고수하려고한다. 감사.
두 모델 모두에서 왜 'zip5'입니까? 그들 사이에 realtion이 있다면, 모든'Ðddr2zip' 객체에 대해'zip5'를 얻는 것이 쉽습니다. 게다가 필요가 없다면 항상 주키를 만능으로 정의하는 것이 이치에 맞지 않는다고 생각합니다. 'zip5'가'Ctystate' 모델에서 유일하다면 기본 키로 사용할 수도 있습니다. 그래서 외래 키가 자동으로 표현됩니다! –
zip5는이 데이터 집합에서 이와 같은 방식으로 제공되며 이는이 목적을 위해이 두 데이터를 관련시키기 위해 수행하고있는 작업입니다. 데이터 구조를 변경하는 것이 옵션이 아니라면 어떻게 장고 모델로이 작업을 수행할까요? –