美文网首页
Django数据库自关联

Django数据库自关联

作者: 火麟腾 | 来源:发表于2019-05-09 13:29 被阅读0次

外键关联是在子评论中,有关联字段的是子评论,子评论查父评论是正向,父评论查子评论是反向。

class Comment(models.Model):

        content = models.CharField(max_length=255)

        ptime = models.DateTimeField(auto_now_add=True)

        parent = models.ForeignKey('self', on_delete=models.CASCADE)

        def __str__(self):

                return self.content

>>> one = Comment.objects.create(content='这是第1条一层评论')

>>> one01 = Comment.objects.create(content='这是第1条一层评论的第1个二层评论', parent=one)

>>> one02 = Comment.objects.create(content='这是第1条一层评论的第2个二层评论', parent=one)

>>> one03 = Comment.objects.create(content='这是第1条一层评论的第3个二层评论', parent=one)

>>> Comment.objects.filter(parent__id=1)    # 查找父评论的子评论

<QuerySet [<Comment: 这是第1条一层评论的第1个二层评论>, <Comment: 这是第1条一层评论的第2个二层评论>, <Comment: 这是第1条一层评论的第3个二层评论>]>

>>> Comment.objects.filter(comment__id=2)  # 查找子评论的父评论

<QuerySet [<Comment: 这是第1条一层评论>]>

>>> c1 = Comment.objects.get(pk=1)

>>> c1.comment_set.all()    # 父评论的子评论,comment是Comment的小写

>>> c101 = Comment.objects.get(pk=2)

>>> c101.parent    #  c101的父评论,parent是Comment的字段

<Comment: 这是第1条一层评论>


ManyToManyField  模型

class Person(models.Model):

        name = models.CharField(max_length=10)

        friend = models.ManyToManyField(to='self')

        def __str__(self):

                return self.name

>>> one = Person.objects.create(name='乔峰')

>>> two = Person.objects.create(name='虚竹')

>>> three = Person.objects.create(name='段誉')

>>> one.friend.add(two,three)

>>> Person.objects.filter(friend__name='乔峰')    # 查找乔峰的好友

<QuerySet [<Person: 虚竹>, <Person: 段誉>]>

>>> p1 = Person.objects.get(pk=1)

>>> p1.friend.all()    # 查找乔峰的好友

<QuerySet [<Person: 虚竹>, <Person: 段誉>]>

相关文章

  • Django数据库自关联

    外键关联是在子评论中,有关联字段的是子评论,子评论查父评论是正向,父评论查子评论是反向。 class Commen...

  • Django模型-自关联

    新建模型AreaInfo,生成迁移 class AreaInfo(models.Model): atitle = ...

  • Django 2.1.7 模型管理器 models.Manage

    上一篇Django 2.1.7 模型的关联讲述了关于Django模型一对多、多对多、自关联等模型关系。 在查询数据...

  • Django|关联MySql数据库

    1、初始化配置 安装pymysql 修改setting.py 修改 __ init __ .py makemig...

  • django 自关联之 - 省市县

    表的自关联, 实现省市区的联动 models: 主键使用的默认生成的主键id title存储省市县名称 pid_i...

  • Django数据库类库MySQLdb使用详解

    Django项目要操作数据库,首先要和数据库建立连接,才能让程序中的数据和数据库关联起来进行数据的增删改查操作。 ...

  • django数据模型设计

    django是数据驱动,所建立的模型继承自django数据库模块,所以可以调用平台底层。过程如下: 编辑 mode...

  • Django 多表关联

    1. 一对一关联关系 使用方法数据库体现Django程序模型通过外键关联,外键要设在多的一方OneToOneFie...

  • django怎么连接数据库查询

    Django项目要操作数据库,首先要和数据库建立连接,才能让程序中的数据和数据库关联起来进行数据的增删改查操作。通...

  • 数据库之自关联

    准备表和数据 查询jx节点的子节点 有一个表的别名是nt2,相当于将两个表连接起来,两个表之间有一定的关系

网友评论

      本文标题:Django数据库自关联

      本文链接:https://www.haomeiwen.com/subject/pepcoqtx.html