1. 程式人生 > 實用技巧 >Django-orm-自關聯

Django-orm-自關聯

Django-orm-自關聯

拓展部落格:https://www.cnblogs.com/Kingfan1993/p/9936541.html

https://www.cnblogs.com/tangda/p/12090669.html

資料庫展示:

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

什麼是自關聯?

  • 表內自關聯是指表內資料相關聯的物件和表是相同欄位,這樣我們就直接用表內關聯將外來鍵關聯設定成自身表的欄位。同樣表內關聯也分一對多欄位和多對多欄位

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

最典型的自關聯模型就是地區表。省市縣都在一張表裡面。省的pid為null,市的pid為省的pid,縣的pid為市的ID。我們今天的例子是部門表,和地區表同理·····

自關聯主要靠資料庫中自關聯表的第一列from 和 第二列to 定義主從。

\(~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\)

model.py

from django.db import models

class Sections(models.Model):
    section = models.CharField(max_length=20, verbose_name='部門')
    # 自關聯部門表
    two_section = models.ForeignKey(to='self', null=True, on_delete=models.CASCADE)

    # pcomment = models.ForeignKey(to='self', null=True)
    class Meta:
        db_table = 'tb_section'
        verbose_name = "部門"