我试图通过 Django 中相当复杂的查找来访问特定字段。我想搜索一个 ManyToManyField 标签,它链接到一个 Poem 模型,而后者又由一个带有 OneToOneField 的 UserPoem 模型链接到。我只是不知道该怎么做:
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_related 的方法,但就是无法破解。这是(不工作的)标签请求:
def tag_page(request, tag_name):
tag = get_object_or_404(Tag, name=tag_name)
poems = tag.poems.order_by('-id').select_related('u_poem')
我只是对 Django 的关系运作方式感到非常困惑。自从我决定将 Poems 表模型一分为二后,我就遇到了无数的问题。
这不会返回错误;它似乎没有从 UserPoem / u_poem 表中返回任何信息。