单表中实现父子表的查询,这个表如何去实现

在同一张表进行父子查询,就向下表一样,我想问一下下面的表的数据如何进行存储与关联,

img


上面图的原址
https://blog.csdn.net/weixin_41358807/article/details/114643157

你应该想要的是model的自关联吧,假设上表为Category,参考如下:

class Category(models.Model):
    id = models.BigAutoField(primary_key=True)
    parent_id = models.BigIntegerField()
    name = models.CharField("名称")
    status = models.SmallIntegerField()

    # 定义一对一的自关联
    Category = models.OneToOneField('self', null=True, on_delete=models.CASCADE, to_field="parent_id")

    # 定义多对一的自关联
    # Category = models.ForeignKey('self', on_delete=models.CASCADE, to_field="parent_id")

    # 定义多对多的自关联,多对多的情况可以通过hrough 参数指定多对多关系使用哪个中间模型以及相应的关联字段,具体可参照文档
    # Category = models.ManyToManyField('self', null=True)

具体也可参照文档中关系字段和关联关系的相关说明


https://docs.djangoproject.com/zh-hans/3.2/topics/db/models/#many-to-one-relationships

https://blog.csdn.net/weixin_44579376/article/details/90288241

需要一对多的,父表定义为主键
子表定义一个 pid 的字段作为外键