django的manytomany总结

from django.db import models

class Blog(models.Model):
    name = models.CharField(max_length=100)
    tagline = models.TextField()

    def __str__(self):              # __unicode__ on Python 2
        return self.name

class Author(models.Model):
    name = models.CharField(max_length=50)
    email = models.EmailField()

    def __str__(self):              # __unicode__ on Python 2
        return self.name

class Entry(models.Model):
    blog = models.ForeignKey(Blog)
    headline = models.CharField(max_length=255)
    body_text = models.TextField()
    pub_date = models.DateField()
    mod_date = models.DateField()
    authors = models.ManyToManyField(Author)
    n_comments = models.IntegerField()
    n_pingbacks = models.IntegerField()
    rating = models.IntegerField()

    def __str__(self):              # __unicode__ on Python 2
        return self.headline
实例化创建一个对象,或者保存对象的改动,都使用save()函数
更新多对多的方式,需要使用字段的add方法来增加关联关系的一条记录
django提供一种强大而又直观的方式来处理查询中的关联关系,他在后台自动帮你处理JOIN。若要跨越关联关系,只需使用关联的模型字段的名称,并用双下划綫分隔,直至你想要的字段
下面这个例子获取所有的Blog的name为"Beatles Blog"的Entry对象:
Entry.objects.filter(blog__name="Beatls Blog")

posted on 2017-03-19 22:39  黑加仑妞  阅读(1735)  评论(0编辑  收藏  举报