簡體   English   中英

代碼給我一個錯誤:“ManyToOneRel”object 沒有屬性“related_model”

[英]Code is giving me an error: 'ManyToOneRel' object has no attribute 'related_model'

如何在 Django 中檢索 model 的所有外鍵列表並訪問它們對應的模型?

我正在嘗試遍歷 Django 中 model 的所有外鍵,並為每個外鍵訪問相應的 model。 這是我的代碼:

from django.db import models

class MyModel(models.Model):
    # model fields

for field in MyModel._meta.get_fields():
    if isinstance(field, models.ForeignKey):
        related_model = field.related_model

但是,這段代碼給我一個錯誤:“ManyToOneRel”object 沒有屬性“related_model”。 我怎樣才能解決這個問題並成功檢索所有外鍵的列表及其 MyModel 的相應模型?

您可以通過以下方式訪問它:

from django.db.models.fields.reverse_related import ManyToOneRel

for field in MyModel._meta.get_fields():
    if isinstance(field, models.ForeignKey):
        if isinstance(field, ManyToOneRel):
            related_model = field.model
        else:
            related_model = field.related_model

ManyToOneRel是一個關系,它是另一個ForeignKey的外鍵,它以您的ForeignKey (此處MyModel )為目標,因此是“反向”中的外鍵。

暫無
暫無

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

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