기존 데이터베이스로 작업 중이며 두 테이블간에 ManyToMany 관계를 만들려고합니다. 축약 된 코드는 다음과 같습니다Django REST Framework ManyToMany 필드 오류
class AddressSummary(models.Model):
class Meta:
managed = False
db_table = 'addresses'
app_label = 'myapp'
address_id = models.IntegerField(db_column='addr_id', primary_key=True)
partial_matches = models.ManyToManyField(
to='ReferenceAddress',
through='AddressMatches'
)
@property
def get_partial_matches(self):
try:
return self.partial_matches.all()
except Exception as E:
print(E)
class ReferenceAddress(models.Model):
class Meta:
managed = False
db_table = 'reference_addresses'
app_label = 'myapp'
id = models.IntegerField(db_column='ID', primary_key=True)
family_name = models.CharField(unique=True, max_length=255)
type_name = models.CharField(unique=True, max_length=255)
partial_matches = models.ManyToManyField(
to='AddressOverview',
through='AddressMatches',
)
class AddressMatches(models.Model):
class Meta:
managed = False
db_table = 'partial_matches'
unique_together = (('addr_id', 'ref_id'),)
app_label = 'myapp'
addr_id = models.ForeignKey('AddressSummary', models.DO_NOTHING, db_column='addr_id', to_field='address_id')
ref_id = models.ForeignKey('ReferenceAddress', models.DO_NOTHING, to_field='id')
나는 다음과 같은 오류가 점점 오전 :
Cannot resolve keyword 'addresssummary' into field. Choices are: family_name, id, partial_matches, type_name
어떤 아이디어? 클래스를 재정렬하려고 시도했지만 도움이되지 않습니다. 나는 시도에 실패 라인을 포장하는 경우 은/절을 제외하고, 다음과 같은 예외를 반환
'ManyToManyField' object has no attribute '_m2m_reverse_name_cache'
이 문제는 마이그레이션을 실행할 때 나타납니다? – wilcus
아니요, AddressSummary를 반환하는 serializer가 있습니다. AddressSummary 클래스의 인스턴스 속성에서 self.partial_matches.all()을 호출하면 오류가 발생합니다. 목표는 요약과 함께 참조 주소의 family_names를 반환하는 것입니다. – vahndi