• 059:表关系之多对多


    表关系之多对多场景:

    1、应用场景:比如文章和标签的关系。一篇文章可以有多个标签,一个标签可以被多个文章所引用。因此标签和文章的关系是典型的多对多的关。
    2、实现方式:Django 为这种多对多的实现提供了专门的 Field 。叫做 ManyToManyField 。还是拿文章和标签为例进行讲解。

    示例代码如下:

    # models.py文件内容:
    class Tag(models.Model):
        tname = models.CharField(max_length=100)
    
    class Article(models.Model):
        title =models.CharField(max_length=100)
        content = models.TextField()
        tags = models.ManyToManyField('Tag')         # 当然也可以加上:related_name="information" 这样的字段内容
    
    # views.py文件内容:
    def index(request):
        # tag1 = Tag(tname="扎心了")
        # tag1.save()
        # article1 = Article(title="fuck1", content="fuck ")
        # article1.save()
        # 两种添加方式:
        # tag1.article_set.add(article1)
        # article1.tags.add(tag1)
      
       # 获取某类标签所有文章的方法: tags = Tag.objects.get(pk=1) artiles = tags.article_set.all() for artile in artiles: print(artile)
    return HttpResponse('success')

    注意:多对多的方式中不可用使用bulk=False方式,随便就忘记吧(可以看一下57节内容)

  • 相关阅读:
    【应试】数据通信与网络
    【应试】操作系统OS
    【笔记】 卷积
    【HDU 5920】 Ugly Problem
    【笔记】位运算
    【洛谷P1378】油滴扩展
    【洛谷 P1120】 小木棍[数据加强版]
    [codeforces]Round #538 (Div. 2) F. Please, another Queries on Array?
    [BZOJ]2563: 阿狸和桃子的游戏
    [BZOJ]4668: 冷战
  • 原文地址:https://www.cnblogs.com/zheng-weimin/p/10227862.html
Copyright © 2020-2023  润新知