1 資料庫modelclass menu(models.model):2 序列化類menuid=models.bigautofield(primary_key=true)
menucode = models.charfield(max_length=16,default='', verbose_name='選單code')
menuname = models.charfield(max_length=50,verbose_name='選單',blank=true, null=true)
parentmenucode = models.charfield(max_length=20,verbose_name='父選單',blank=true, null=true)
path = models.charfield(max_length=20,verbose_name='選單路徑',blank=true, null=true)
icon = models.charfield(max_length=20,verbose_name='選單圖示',blank=true, null=true)
roles = models.charfield(max_length=500,verbose_name='角色',blank=true, null=true)
isdelete = models.booleanfield(default=0,verbose_name='1刪除')
class menu_operation(models.model):
menu = models.foreignkey(menu, on_delete=models.cascade, related_name='menuoper',blank=true, null=true, verbose_name='選單')
opername = models.charfield(max_length=50,verbose_name='操作名稱',blank=true, null=true)
roles = models.charfield(max_length=500,verbose_name='角色',blank=true, null=true)
isdelete = models.booleanfield(default=0,verbose_name='1刪除')
正向查詢關聯外來鍵的名稱
class menuoperationserializer(serializers.modelserializer):3 查詢(和普通查詢一致)# source 格式模型外來鍵模型欄位名.主表的字段屬性
menu=serializers.charfield(source="menu.menuname",read_only=true)
class meta:
model = models.menu_operation
fields = '__all__'
反向查詢關聯的外來鍵物件列表
class menuserializer(serializers.modelserializer):
#注意順序,需在字表的後邊定義該序列化,
#屬性與子表的related_name對應
menuoper = menuoperationserializer(many=true)
class meta:
model = models.menu
fields = '__all__'
class menuviewset(viewsets.genericviewset):serializer_class = serializer.menuserializer
authentication_classes=[jwtauthentication]
def findallmenu(self, request):
instance=menu.objects.filter(isdelete=0)
serializer = self.get_serializer(instance, many=true)
return apiresponse(data=serializer.data)
關聯 外來鍵問題
外來鍵問題 外來鍵一定是每個表的主鍵關聯問題 兩個表之間有聯絡,是通過外來鍵的設定模型中如果有外來鍵和多對多字段,建立的時候外來鍵必須首先繫結,然後儲存,才能新增多對多字段。relationships 主要有三類 many to one,many to many,one to one class s...
PostgreSQL 外來鍵關聯操作
乙個外來鍵約束指定一列 或一組列 中的值必須匹配出現在另乙個表中某些行的值。我們說這維持了兩個關聯表之間的引用完整性。注意,乙個從表外來鍵所引用的主表 column 必須是乙個主鍵或者是被唯一約束所限制的。這意味著主表被引用的列總是擁有乙個索引 位於主鍵或唯一約束之下的索引 因此在其上進行的乙個引用...
MySQL 外來鍵關聯策略
eg.乙個使用者可有擁有多個訂單,乙個訂單只能屬於乙個使用者,一對多,在tb order中使用外來鍵user id關聯tb user的id。當刪除 更新tb user中的主鍵時,與之關聯的tb order要受到影響,比如 tb user中的一條記錄 1chy abcd tb order中一條記錄,1...