16.Django_ORM_外鍵

一、示例的表關係
這裏需注意表與表之間的主從表關係,因爲外鍵字段需要在主表(“多”的表)
1.對於助教來說,導師是從表
2.對於學生來說,課程是從表
3.對於課程來說,導師是從表
PS.
主從表的確定,需要從業務角度來確定。比如說如果這個系統是開發給老師用的,那麼課程是主表;如果開發給學生用的,那麼學生是主表。

在這裏插入圖片描述

對於我們來說項目和接口實際是主從關係,有關聯,即項目是接口的主鍵,一對多;

  1. 新建Interface應用:
python manage.py startapp interfaces

2 .註冊應用:setting.py中:

 'interfaces.apps.InterfacesConfig',

3 .interfaces/models.py中建立表結構:

from django.db import models



# Create your models here.
class Interfaces(models.Model):
    # 創建Projects模型類

    name = models.CharField(verbose_name="接口名稱",max_length=200,unique=True,help_text="接口名稱")
    method = models.CharField(verbose_name="接口類型",max_length=50,help_text="接口類型")
    desc = models.TextField(verbose_name="簡要描述",max_length=200,help_text="簡要描述",blank=True,default="")

    #設置外鍵

    # 第一個參數爲關聯的模型路徑(應用名.模型類)
    #第二個參數爲副表刪除後,該字段的處理方式
    #CASCADE:子表也會被刪除
    #SET_NULL:當前外鍵會被設置爲None
    # PROJECT:會報錯
    # SET_DEFAULT:設置默認值同時需要指定默認值,null=True

    project = models.ForeignKey('projects.Projects',on_delete=models.CASCADE,
                                verbose_name="所屬項目",help_text="所屬項目",null=True, blank=True)

   #設定數據庫名稱等信息
    class Meta:
        db_table="tb_interfaces"
        verbose_name="接口"
        verbose_name_plural="接口"

  1. 進行表遷移:
python manage.py  makemigrations    # 生成migrations臨時文件
python manage.py  migrate           # 根據migrations直接生成數據庫
  1. 遷移結果:
    在這裏插入圖片描述
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章