簡體   English   中英

Django REST框架ManyToMany字段錯誤

[英]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()時發生錯誤

你是說你selfself.partial_matches.all()是AddressSummary實例,但錯誤顯示的所有字段ReferenceAddress暗示self其實是ReferenceAddress

您可能從此開始。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM