두 모델 간의 일대 다 관계를 정의하는 방법을 파악하려고합니다. 여기에있는 어려움은 모델 중 하나를 만지기를 원하지 않기 때문에 일반적인 ForeignKey (다 대일)를 사용할 수 없다는 것입니다.모델에서 Django 일대 다 관계 (조회가 아님)
이 주제에 대해 많은 질문이 있지만 조회 방법 (역방향 ForeignKey 조회)에 대해 모두 이야기하거나 외래 키를 한쪽에만 추가하는 것이 좋습니다. 여기에 similar question입니다. 동일한 코드 예제를 사용합니다.
class PhoneNumber(models.Model):
dude = models.ForeignKey(Dude, related_name='numbers')
하지만 내 상황에서 내가 싶습니다 : 많은 답변에 제안 내가 가서 그냥 PHONENUMBER에 외래 키를 추가 일반적으로
class Dude(models.Model):
numbers = models.OneToManyField('PhoneNumber')
class PhoneNumber(models.Model):
number = models.CharField()
: 이를 위해 내가 무엇을 찾고있다 PhoneNumber 모델을 건드리지 않으므로 Dude 모델에서 무언가를 정의하십시오.
나는 거의 사용되지 않는 특별한 상황을 설명하는 모델을 정의하고 있습니다. ForeignKey를 (PhoneNumber) 모델에서 사용한 경우 모든 인스턴스의 99.9 %가이 필드를 비워 둡니다. 나는 항상 비어있는 분야를 가지고 있다는 생각을 정말로 좋아하지 않는다. 아마도 이것은 나의 문제 일 것이다.
가능한 해결 방법은 many-to-many 필드를 정의한 다음 한쪽에 'many'를 실제로 방지하고 다른 쪽이 비어 있지 않도록 강제하는 로직을 추가하는 것입니다.
나는 분명히 내 문제를 설명 할 수 있기를 바랍니다.
질문 : 일대 다 관계를 정의하는 방법이 있습니까? 내 문제에 대해 다른 접근법을 사용하는 더 좋은 해결책이 있습니까?
P. 내가 장고 문서에서 얻을 수있는 유일한 히트는 필드 속성이 one_to_many인데, 나는 추측하고 있는데, 조회에 사용된다.
[장고에서 일대 다 관계를 표현하는 방법] 가능한 복제본 (https://stackoverflow.com/questions/6928692/how-to-express-a-one-to- 많은 관계 - django) – ptr
필드는 대개 비어 있습니다.그것은 당신이 걱정하는 경우 데이터베이스의 중요한 공간을 차지하지 않습니다. –
사실 내 질문에 "비슷한 질문"으로 그 질문에 링크. 그 질문에 대한 답이 만족스럽지 않은 이유는 내가 phoneNumber 모델을 만지는 것을 원치 않기 때문입니다. – jimfawkes