django 外键model的互相读取方法
先设定一个关系模型如下:
fromdjango.dbimportmodels classBlog(models.Model): name=models.CharField(max_length=100) tagline=models.TextField() def__str__(self): returnself.name classAuthor(models.Model): name=models.CharField(max_length=50) email=models.EmailField() def__str__(self): returnself.name classEntry(models.Model): blog=models.ForeignKey(Blog) headline=models.CharField(max_length=255) body_text=models.TextField() authors=models.ManyToManyField(Author) def__str__(self): returnself.headline
上面的数据关系很明晰,Entry中有Blog和Author的外键,如果要在Entry中读取blog和author的数据很容易:
entry=Entry.objects.all() foreinentry: blog=e.blog author=e.authors
要在Blog和Author中读取Entry也可以:
blog=Blog.objects.all() entry=blog.entry_set.all() author=Author.objects.all() entry=author.entry_set.all()
下面通过entry使blog和author互相读取,比如要知道一个blog的Author只需如下:
blogs=Blog.objects.all() forbloginblogs: ifblog.name==“我们想要查询的博客的name” author=blog.entry_set.authors
要查询一个author的所有blog如下:
authors=Author.objects.all() blogs=[] forauthorinauthors: ifauthor.name==“我们想要查询的Author的name” forentryinauthor.entry_set.all(): blogs.append(entry.blog)
以上这篇django外键model的互相读取方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持毛票票。