Django中的数据库模型类-models.py(多对多的关系)

来源:互联网 发布:github webhook php 编辑:程序博客网 时间:2024/06/02 07:28
# -*- coding: utf-8 -*-from __future__ import unicode_literalsfrom django.db import models# Create your models here.# 多对多关系# 例子:一个出版社可以发表多个文章,一篇文章也可以被多个出版社发表# ManyToManyFiled():关联俩个表的函数,但是函数的设置位置在模型中任选一个即可,不能俩个模型中都设置此函数class Publication(models.Model):    id = models.AutoField(primary_key=True,verbose_name=u'主键')    title = models.CharField(max_length=30,null=True,blank=True,verbose_name=u'出版社名称')    class Meta:        db_table = 'publication'    def __unicode__(self):        return 'publication-name:%s'%self.titleclass Article(models.Model):    id = models.AutoField(primary_key=True,verbose_name=u'主键')    headline = models.CharField(max_length=100,null=True,verbose_name=u'文章标题')    # 让文章关联出版社    publication = models.ManyToManyField(Publication,verbose_name=u'外键')    class Meta:        db_table = 'article'    def __unicode__(self):        return 'article_name:%s'%self.headline# 注意点:# 1>注意ManyToManyField()的设置位置;该实例中设置在了Article模型中,在绑定俩张表的关系时,利用的是Article的对象a1进行绑定的,a1.publication.add()。但是不能使用Publication的对象p1进行绑定(p1.article.add()# 2># 俩张表之间的相互查询关系# 查询a1这篇文章,所属的出版社有哪些# print a1.publication.all()# 查询某一个出版社所包含的所有文章有哪些# print p1.article_set.all()