나는 Person이라고하는 모델을 가지고 있으며 사람은 여러 관계를 가질 수도 있고 가지지 않을 수도 있습니다. 배우자, 자녀, 부모. 사람이 배우자를 가지고 있지만 그 배우자가 데이터베이스에있는 사람이 아닌 경우 배우자를 다른 사람이 아닌 문자열 값으로 유지할 수 있기를 원합니다.Django ORM 배우자, 자녀, 부모 관계
CommandError: One or more models did not validate: myapp.person: Many-to-many fields with intermediate tables cannot be symmetrical. myapp.person: Many-to-many fields with intermediate tables cannot be symmetrical. myapp.person: The model Person has two manually-defined m2m relations through the model Relationship, which is not permitted. Please consider using an extra field on your intermediary model instead. myapp.person: Many-to-many fields with intermediate tables cannot be symmetrical. myapp.person: The model Person has two manually-defined m2m relations through the model Relationship, which is not permitted. Please consider using an extra field on your intermediary model instead. myapp.relationship: Accessor for field 'personA' clashes with related field 'Person.relationship_set'. Add a related_name argument to the definition for 'personA'. myapp.relationship: Accessor for field 'personB' clashes with related field 'Person.relationship_set'. Add a related_name argument to the definition for 'personB'.: 나는 다음과 같은 오류 메시지가 표시 얻을 ./manage.py의 마이그레이션을 실행하려고하면
class Person(models.Model):
spouse = models.ManyToManyField('self', through='Relationship')
children = models.ManyToManyField('self', through='Relationship')
parents = models.ManyToManyField('self', through='Relationship')
class Relationship(models.Model):
personA = models.ForeignKey(Person)
personB = models.ForeignKey(Person, blank=True, null=True)
person_name = models.TextField(default='', blank=True)
relationship = models.CharField(choices=(('s', 'spouse'),
('c', 'child'),
('p', 'parent')),
default='s')
: 그 때문에 나는이 M2M 관계에 지정된 through
모델이 필요 가정
분명히 나는 그것을 잘못하고있다.
동일한 모델과 그 관계와 관련된 추가 데이터가있는 관계를 어떻게 지정할 수 있습니까?
다른 방법으로 이러한 모델을 구성하여 동일한 데이터를 추적 할 수 있습니까?
왜 사용자로 스텁하지 않습니까? –
그들은 (는) 사용자가 아닙니다. 그들은 작가, 일러스트 레이터 등이며 책, 영화 등과도 관련되어 있습니다. – chadgh
죄송합니다. 문자열 대신 [여기에 사용하는 모델을 삽입 하시겠습니까?]로 스텁하지 않으시겠습니까? –