微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

有没有办法将模型的多个实例嵌入到Django的单个模型字段中?

如何解决有没有办法将模型的多个实例嵌入到Django的单个模型字段中?

我知道外键概念Djongo Array字段,但是有替代方法吗? 外键概念的问题是,我需要对数据库进行多次匹配,而Array字段的问题是缺少信息,并且在没有已知解决方案的情况下出现了错误。 我基本上想做的是实际上将一个模型的多个实例添加到另一个模型的单个字段中,例如注释,但是我想将其嵌入,而不是创建一个新表用于注释,但是我尝试使用抽象模型无法解决。 我想知道任何其他解决方案。

解决方法

您可以使用外键,为避免对每个相关记录进行单独查询,您可以使用prefetch_related-https://docs.djangoproject.com/en/3.1/ref/models/querysets/#prefetch-related一次提取它们:

返回一个QuerySet,该查询集将自动为每个指定的查询分批检索相关对象。

代码示例:

# models.py
class Post(models.Model):
    title = models.CharField(max_length=100)
    content = models.TextField()


class Comment(models.Model):
    post = models.ForeignKey(Post,models.CASCADE)
    text = models.TextField()


# Somewhere else,fetch posts together with related comments:
# It will take 2 requests in total 
# - one to fetch posts,another to fetch all related comments
for post in Post.objects.all().prefetch_related('comment_set'):
    print([c.text for c in post.comment_set.all()])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。