簡體   English   中英

從多對多關系中獲取數據

[英]Get data from ManytoMany Relationship

我有以下型號:

class Speaker(models.Model):
    id_speaker = models.UUIDField(primary_key=True)
    name = models.TextField()

class Session(models.Model):
    id_session = models.UUIDField(primary_key=True)
    name = models.TextField()
    speakers = models.ManyToManyField(Speaker)

當查詢Session.objects.all() ,我得到了下一個示例數據:

{
  "id_session": "UUID",
  "name": "Example name",
  "speakers": [
    {
      "id_speaker": "UUID",
      "name": "John Doe"
    }
  ]
}

如您所見,我有會議發言人列表,現在的問題是,如何獲得發言人會議,這是我想要的一個示例:

{
    "id_speaker": "UUID",
    "name": "John Doe",
    "sessions": [
        {
            "id_session": "UUID",
            "name": "Example name"
        }
    ]
}

如果您想知道我是否使用django-rest-framework,答案為是。

can您不能更改模型的結構嗎?

class Session(models.Model):
    id_session = models.UUIDField(primary_key=True)
    name = models.TextField()


class Speaker(models.Model):
    id_speaker = models.UUIDField(primary_key=True)
    name = models.TextField()
    session = models.ManyToManyField(Session)

不知道我是否正確理解您的問題。

嘗試related_name Django相關名稱

注意related_name在ManyToManyField kwarg

class Speaker(models.Model):
    id_speaker = models.UUIDField(primary_key=True)
    name = models.TextField()

class Session(models.Model):
    id_session = models.UUIDField(primary_key=True)
    name = models.TextField()
    speakers = models.ManyToManyField(Speaker, related_name='sessions')

然后,您可以從發言人對象獲得所有會話

some_speaker.sessions.all()  #Returns sessions

暫無
暫無

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

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