私は既存のデータベースを使用しており、2つのテーブル間でManyToMany関係を作成したいと考えています。省略コードは次のとおりです。Django RESTフレームワーク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
任意のアイデア?私はクラスの並べ替えを試みましたが、これは助けになりません。 私はexcept節のtry /に失敗した行をラップする場合は、次の例外を返します。
'ManyToManyField' object has no attribute '_m2m_reverse_name_cache'
この問題は、移行を実行すると表示されますか? – wilcus
いいえ、私はAddressSummaryを返すシリアライザを持っています。このエラーは、AddressSummaryクラスのインスタンスのプロパティでself.partial_matches.all()を呼び出すと発生します。目的は、参照アドレスのfamily_namesを要約とともに返すことです。 – vahndi