Я работаю с существующей базой данных и хочу создать отношения 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. Ошибка возникает, когда я вызываю self.partial_matches.all() в свойстве экземпляра класса AddressSummary. Цель состоит в том, чтобы вернуть family_names ссылочных адресов с резюме. – vahndi