이것은 매우 사소한 질문 인 것 같습니다. 그러나 그것은 나를 죽이고 있습니다.Django ManyToManyField 오류 개체에 'location_set'속성이 없습니다
쉘에서
class Location(models.Model):
place = models.CharField("Location", max_length=30)
[...]
class Person(models.Model):
first = models.CharField("First Name", max_length=50)
[...]
location = models.ManyToManyField('Location')
models.py :
>>> from mysite.myapp.models import *
>>> p = Person.objects.get(id=1)
>>> p
<Person: bob >
>>> l = Location(place='123 Main')
>>> p.location_set.add(l)
>>> p.save()
Traceback (most recent call last):
File "<console>", line 1, in <module>
AttributeError: 'Person' object has no attribute 'location_set'
정말 저는 누락 된 것을 확인할 수 없습니다.
감사합니다. 나는 "앞으로"와 "뒤로"라는 구별이 있다는 것을 깨닫지 못했습니다. 그 이유가 있을까요? 분명히 매핑 테이블 자체는 그러한 "방향성"을 생성하지 않습니다. – jal
맞습니다. 그러나 필드 자체는 관계의 '끝'을 나타냅니다. 이 경우 'Location'에서 'Person'까지의 역방향 관계는'person_set'입니다. –
나는 그것을 얻었고 도움을 주셔서 감사합니다. Django는 "should"위에 무겁습니다. 여러분이 자신의 방식대로하면 쉽습니다. 나는 내가 묻고있는 것이 무엇인지 추측한다. 왜 계급 간 차이가있을 것인가? 여기에 관계의 벡터가 있는가? 디자인 결정의 대부분은 나에게 의미가 있습니다 - 이것은 프레임 워크보다 나에 관한 것입니다. 그러나 – jal