Django从一个ManyToManyField反向查找一个OneToOneField

2024-09-29 23:19:50 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过Django中一个相当复杂的查找来访问特定的字段。我想搜索ManyToManyField标记,它链接到一个pome模型,而这个模型又由一个带有OneToOneField的userpome模型链接。我就是不知道怎么做:

class Poem(models.Model):
    title = models.CharField(max_length=256)
    thetext = models.TextField()

class UserPoem(models.Model):
    poem = models.OneToOneField(Poem, related_name='u_poem')
    date = models.DateField()
    user = models.ForeignKey(User)

class Tag(models.Model):
    name = models.CharField(max_length=64, unique=True)
    poems = models.ManyToManyField(Poem)`

因此,给定一个标签,我想得到这个标签中诗歌标题的文本,以及用户,诗歌日期等信息。我尝试过各种方法,涉及到select\u相关的,但就是无法破解。以下是(不工作)标签请求:

^{pr2}$

我真的很困惑Django的关系运作方式。自从我决定把Poems表模型一分为二以来,我就遇到了很多难以启齿的问题。在

这不会返回错误;它只是似乎没有从UserPoem/u\u poem表返回任何信息。在


Tags: django模型model链接models标签lengthmax
1条回答
网友
1楼 · 发布于 2024-09-29 23:19:50

在你的位置上我会做:

class Tag(models.Model):
    name = models.CharField(max_length=64, unique=True)

class Poem(models.Model):
    title = models.CharField(max_length=256)
    thetext = models.TextField()
    tags   = models.ManyToManyField(Poem)

所以:

^{pr2}$

模板:

{% for poem,usersp in poems_sets %}
    {{poem.title}}
    {{poem.thetext}}
    {% for u in usersp %}
        {{u.date}}
        {{u.user}}
    {% endfor %}
{% endfor %}               

相关问题 更多 >

    热门问题