程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

【Django學習筆記 - 15】:admin站點編輯(關聯對象在列表頁中添加,編輯頁調整、圖片設置)

編輯:Python

文章目錄

  • 關聯對象在列表頁中添加
    • 將關聯對象顯示在admin站點中
      • 一對一顯示關聯對象
      • 多對一顯示關聯對象
  • 編輯頁調整
    • fields設置編輯頁
    • 分組顯示:fieldsets
    • 關聯對象:Tabularlnline、Stackedlnline
      • StackedInline:設置以塊的形式編輯
      • TabularInline:設置以表格的形式編輯
  • 圖片設置

關聯對象在列表頁中添加

將關聯對象顯示在admin站點中

一對一顯示關聯對象

  1. 如果是多對一或一對一,直接將子表的關聯添加到list_display中


  2. 從主表添加時,也是同ORM一樣直接以模型類的小寫作為字段名進行添加

多對一顯示關聯對象

  1. '多’的一方顯示’一’的一方





  1. '一’的一方顯示’多’的一方

在Wife_1中添加show_description方法,將此方法添加到字段中



編輯頁調整

fields設置編輯頁


注意在models中不允許為空的字段必須添加到編輯頁要編輯的字段中

  1. null:允許當前字段在數據庫中可為空值

也就是當設置字段null=True時,在admin編輯頁中添加時,該字段為必填項。若想將此字段變為選填項可添加blank=True。

  1. 允許當前字段在admin站點的編輯中可以空


分組顯示:fieldsets

fieldsets = (
('組1標題', {
'fields':['字段1', '字段2']}),
('組2標題', {
'fields':['字段3', '字段4'],
'classes':('collapse',)}) # 設置是否折疊顯示
)

注意:fieldsets和fields不能同時存在,二者選其一使用




關聯對象:Tabularlnline、Stackedlnline

在一對多的關系中,可以在一端的編輯頁面中編輯多端的對象,嵌入多端對象的方式包括表格、塊兩種。

  • 類型lnlineModelAdmin:表示在模型的編輯頁面嵌入關聯模型的編輯
  • 子類Tabularlnline:以表格的形式嵌入。
  • 子類Stackedlnline:以塊的形式嵌入。

StackedInline:設置以塊的形式編輯

導入:from django.contrib.admin import StackedInline


TabularInline:設置以表格的形式編輯



圖片設置

  1. 添加圖片字段





2. 添加一個在admin中顯示照片的方法


3. 取消圖片的轉義

需要導入的模塊:
from django.utils.safestring import mark_safe

此時可以在admin中看到一個損壞的圖片,這是因為系統沒有找到該圖片的路徑,所以我們需要配置一個media媒體文件,用來存放圖片。

  1. media媒體文件的配置
    -在項目中創建一個存放媒體文件的文件夾:media,並在靜態文件中進行路徑的配置

    - 在根路由中配置media靜態文件的路由

    - 在模型類中添加圖片應上傳到的地方

upload_to 表示將上傳的文件放在哪一個地方,找的是meida而不是static


- 重新上傳文件後,即可看見圖片,此時圖片過大,我們需要進行圖片尺寸的設置

  1. 設置圖片尺寸


    -點擊該圖片即可進行頁面跳轉

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved