[英]Django REST Framework ManyToMany Field Error
我正在使用現有數據庫,並希望在兩個表之間創建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
有任何想法嗎? 我嘗試過重新排序課程,但這無濟於事。 如果我將失敗的行包裝到try / except子句中,它將返回以下異常:
'ManyToManyField' object has no attribute '_m2m_reverse_name_cache'
您應該向我們展示您的序列化程序的外觀。
缺少信息使回答者更加難以猜測正在發生的事情,並且您獲得答案的機會也會下降。
信息有限,
無法將關鍵字“ addresssummary”解析為字段。 選項包括:family_name,id,partial_matches,type_name
當我在AddressSummary類的實例的屬性中調用self.partial_matches.all()時發生錯誤
你是說你self
在self.partial_matches.all()
是AddressSummary實例,但錯誤顯示的所有字段ReferenceAddress
暗示self
其實是ReferenceAddress
。
您可能從此開始。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.