첫째로, 나는 문제를 해결하는 방법을 알고 있습니다. 나는 그것이 왜 일어나는지 이해하려고 노력하고 있습니다. 오류 메시지 :Django 모델 : 이름 충돌 이유는 무엇입니까?
users.profile: Reverse query name for field 'address' clashes with related field 'Address.profile'. Add a related_name a rgument to the definition for 'address'.
그리고 코드 : 내가 올바르게,이 라인을 이해한다면
class Address(models.Model):
country = fields.CountryField(default='CA')
province = fields.CAProvinceField()
city = models.CharField(max_length=80)
postal_code = models.CharField(max_length=6)
street1 = models.CharField(max_length=80)
street2 = models.CharField(max_length=80, blank=True, null=True)
street3 = models.CharField(max_length=80, blank=True, null=True)
class Profile(Address):
user = models.ForeignKey(User, unique=True, related_name='profile')
primary_phone = models.CharField(max_length=20)
address = models.ForeignKey(Address, unique=True)
가 :
address = models.ForeignKey(Address, unique=True)
이 속성을 일으킬 것인가는 함께 Address
클래스에 추가 할 이름은 profile
입니다. 다른 "프로필"이름을 만드는 이유는 무엇입니까?
역 이름이 필요하지 않으면 어떻게합니까? 그것을 사용 중지하는 방법이 있습니까? 주소는 십여 가지에 사용되므로 역 관계의 대부분은 어쨌든 비어있게됩니다.
주소 필드를 별도의 테이블이 아닌 모델에 복사하는 방법이 있습니까? 파이썬 상속이 없다면 (이것은 이해가되지 않습니다. 모델에 2 개의 주소가 있으면 작동하지 않습니다).
그걸 보지 못했습니다, 감사합니다! 이상한 구문. – mpen
이것은 올바른 사용 중지 방법입니다. – Exelian
은 https://code.djangoproject.com/ticket/5537에서 왔습니다. –