Django實現音樂網站 ⑼

使用Python Django框架制作一個音樂網站,

本篇主要是后臺對專輯、首頁輪播圖原有功能的基礎上進行部分功能實現和顯示優化。

目錄

專輯功能優化

新增編輯

專輯語種改為下拉選項

添加單曲優化顯示

新增單曲多選

更新歌手專輯數、專輯單曲數

獲取歌手專輯數

保存處理專輯數和單曲數

列表顯示

顯示專輯封面

顯示專輯所屬歌手

首頁輪播圖功能優化

字段顯示優化

記錄列表顯示圖片

總結


專輯功能優化

新增編輯

專輯語種改為下拉選項

修改專輯表模型Album 專輯語種字段,使用choices參數。

langs = [('國語', '國語'), ('普通話', '普通話'), ('英語', '英語'), ('日韓', '日韓')]
single_lang = models.CharField('專輯語種', max_length=50, choices=langs, help_text='請選擇專輯語種')

?效果:

添加單曲優化顯示

需要在添加專輯時,單曲選項顯示為單曲名稱;

還是去修改表模型,需要給單曲表設置返回格式。

單曲表模型增加str方法

def __str__(self):return self.name

新增單曲多選

添加或編輯數據時,選擇單曲可通過ctrl鍵來實現多選。

?查看數據庫表

更新歌手專輯數、專輯單曲數

在新增專輯后,同步更新所屬歌手擁有專輯數量。

在player/models.py中修改。

獲取歌手專輯數

def get_album_singler_num(singler_id):"""獲取專輯表中所屬歌手數:param singler_id::return:"""return Album.objects.filter(singler_id=singler_id).count()

保存處理專輯數和單曲數

在專輯表模型中重寫保存方法。

單曲數通過Singe字段獲取,是一個set類型;使用內置方法len計算數量。

?重寫save方法

def save(self, force_insert=False, force_update=False, using=None,update_fields=None):""" 重寫save方法 處理單曲數和歌手專輯數 """super().save()# 獲取選中的單曲字典sing_set = self.Singe.all()single_num = len(sing_set)# 更新單曲數self.single_num = single_num# 獲取所屬歌手專輯數album_num = get_album_singler_num(self.singler_id)super().save()# 更新歌手表-專輯數Singler.objects.filter(pk=self.singler_id).update(album_num=album_num)

列表顯示

顯示專輯封面

默認顯示的是專輯封面路徑。

修改player/admin.py中專輯后臺類中封面自定義返回。

內容如下:

def get_cover(self):return format_html('<img src="/media/{}" width="100px" height="100px"/>'.format(self.cover))

效果:

顯示專輯所屬歌手

默認列表顯示的專輯所屬歌手為外鍵id,需要顯示為歌手名稱。

修改player/admin.py中專輯后臺類中對歌手外鍵id返回,使用之前單曲顯示歌手方法即可。

內容如下:

def get_singler_id(self):return get_singler_name(self.singler_id)get_singler_id.short_description = '歌手'

效果:

首頁輪播圖功能優化

字段顯示優化

修改player/models.py文件中,首頁輪播圖表模型中字段顯示為設定的內容。

內容如下:

class Carousel(models.Model):""" 首頁輪播圖 """class Meta:verbose_name = '首頁輪播'verbose_name_plural = '首頁輪播'path = models.ImageField('輪播圖',upload_to=upload_save_path,help_text='請選擇上傳首頁輪播圖')href = models.CharField('跳轉路徑',max_length=100,help_text='請輸入點擊圖片后跳轉路徑'

記錄列表顯示圖片

修改player/admin.py文件;展示輪播圖列表中顯示路徑改為顯示圖片,

還是通過format_html。

內容如下:

class CarouselAdmin(admin.ModelAdmin):""" 后臺首頁輪播圖類 """def get_path(self):return format_html('<img src="/media/{}" width="200px" height="100px"/>',self.path,)get_path.short_description = '圖片路徑'def get_href(self):return self.hrefget_href.short_description = '跳轉路徑'# 顯示字段list_display = ['id', get_path, get_href]

效果:

總結

操作后臺管理自定義時,目前主要通過兩方面來改變,一個是表模型;另一個是通過后臺類。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/39571.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/39571.shtml
英文地址,請注明出處:http://en.pswp.cn/news/39571.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【并發編程】自研數據同步工具的優化:創建線程池多線程異步去分頁調用其他服務接口獲取海量數據

文章目錄 場景&#xff1a;解決方案 場景&#xff1a; 前段時間在做一個數據同步工具&#xff0c;其中一個服務的任務是調用A服務的接口&#xff0c;將數據庫中指定數據請求過來&#xff0c;交給kafka去判斷哪些數據是需要新增&#xff0c;哪些數據是需要修改的。 剛開始的設…

Character Animation With Direct3D 讀書筆記

角色動畫簡介 2D動畫&#xff1a;循環播放多張圖片 3D動畫&#xff1a; 骨骼動畫、變形動畫 DirectX入門 Win32 應用程序 Application類&#xff1a;處理主程序循環&#xff0c;圖形設備的初始化 Init&#xff1a;加載資源并創建圖形設備Update&#xff1a;更新游戲世界&am…

Vue中子組件修改父組件傳來的Prop值

vue中子組件不能直接修改父組件傳來的prop值&#xff0c;Prop 是一種傳遞數據的機制&#xff0c;父組件通過 Prop 向子組件傳遞數據&#xff0c;子組件通過 Props 接收父組件傳遞過來的數據&#xff0c;這些數據被封裝成一個個解構體形式的對象&#xff0c;不能直接進行修改。這…

React 18 更新 state 中的對象

參考文章 更新 state 中的對象 state 中可以保存任意類型的 JavaScript 值&#xff0c;包括對象。但是&#xff0c;不應該直接修改存放在 React state 中的對象。相反&#xff0c;當想要更新一個對象時&#xff0c;需要創建一個新的對象&#xff08;或者將其拷貝一份&#xf…

圖像去雨、去雪、去霧論文學習記錄

All_in_One_Bad_Weather_Removal_Using_Architectural_Search 這篇論文發表于CVPR2020&#xff0c;提出一種可以應對多種惡劣天氣的去噪模型&#xff0c;可以同時進行去雨、去雪、去霧操作。但該部分代碼似乎沒有開源。 提出的問題&#xff1a; 當下的模型只能針對一種惡劣天氣…

【ARM 嵌入式 編譯系列 4.1 -- GCC 編譯屬性 likely與unlikely 學習】

文章目錄 GCC likely與unlikely 介紹linux 內核中的 likely/unlikely上篇文章:ARM 嵌入式 編譯系列 4 – GCC 編譯屬性 __read_mostly 介紹 下篇文章: ARM 嵌入式 編譯系列 4.2 – GCC 鏈接規范 extern “C“ 介紹 GCC likely與unlikely 介紹 likely 和 unlikely 是GCC編譯器…

JDBC連接數據庫(mysql)

準備jar包 官網下載即可&#xff0c;這里提供兩個我下載過的jar包&#xff0c;供使用 鏈接&#xff1a;https://pan.baidu.com/s/1snikBD1kEBaaJnVktLvMdQ?pwdrwwq 提取碼&#xff1a;rwwq eclipse導 jar包: 導入成功會有如下所示&#xff1a; ---------------------------…

個人開發中常見單詞拼錯錯誤糾正

個人開發中常見單詞拼錯錯誤糾正 前置說明參考地址后端開發相關前端開發相關客戶端開發相關大數據/云計算相關工具或軟件相關 前置說明 單詞太多啦, 我這里只列表我個人見得比較多的, 我沒見過就不列舉了. 有錯誤或想補充的可以提交在原倉庫提交Pull Request. &#x1f601; …

JavaScript面試題(二)

31、http 的理解 ? HTTP 協議是超文本傳輸協議&#xff0c;是客戶端瀏覽器或其他程序“請求”與 Web 服務器響應之間的應用層通信協議。HTTPS主要是由HTTPSSL構建的可進行加密傳輸、身份認證的一種安全通信通道。 32、http 和 https 的區別 ? 1、https協議需要到ca申請證書…

基于DEM tif影像的插值平滑和tif紋理貼圖構建方法

文章目錄 基于CDT的無縫融合基于拓撲糾正的地上-地表的Bool運算融合 基于CDT的無縫融合 準備數據是一個10米分辨率的Tif影像&#xff0c;直接用于生成DEM會十分的不平滑。如下圖所示&#xff0c;平滑前后的對比效果圖差異&#xff1a; 基于ArcGIS的DEM平滑插值 等值線生成&…

Oracle增加列

在Oracle數據庫中&#xff0c;使用ALTER TABLE語句可以很方便地為表增加新列。在進行操作時&#xff0c;需要謹慎考慮新列的數據類型、名稱、默認值、約束等因素&#xff0c;以確保操作的安全性和可靠性。同時&#xff0c;也需要注意備份數據、避免在高峰期進行操作等注意事項 …

GPT內功心法:搜索思維到GPT思維的轉換

大家好,我是herosunly。985院校碩士畢業,現擔任算法研究員一職,熱衷于機器學習算法研究與應用。曾獲得阿里云天池比賽第一名,CCF比賽第二名,科大訊飛比賽第三名。擁有多項發明專利。對機器學習和深度學習擁有自己獨到的見解。曾經輔導過若干個非計算機專業的學生進入到算法…

Linux6.38 Kubernetes 集群存儲

文章目錄 計算機系統5G云計算第三章 LINUX Kubernetes 集群存儲一、emptyDir存儲卷2.hostPath存儲卷3.nfs共享存儲卷4.PVC 和 PV 計算機系統 5G云計算 第三章 LINUX Kubernetes 集群存儲 容器磁盤上的文件的生命周期是短暫的&#xff0c;這就使得在容器中運行重要應用時會出…

編寫 loading、加密解密 發布NPM依賴包,并實施落地使用

你的 Loading 開箱即可用的 loading&#xff0c; 說明&#xff1a;vue3-loading 是一個方便在 Vue 3 項目中使用的加載指示器組件的 npm 插件。它允許您輕松地在項目中添加加載動畫&#xff0c;提升用戶體驗。 目錄 你的 Loading&#x1f30d; 安裝&#x1f6f9; 演示地址&…

C# WPF 無焦點自動獲取USB 二維碼掃碼槍內容,包含中文

C# WPF 無焦點自動獲取USB 二維碼掃碼槍內容&#xff0c;包含中文 前言項目背景 需要預知的知識實現方案第一步 安裝鍵盤鉤子第二步 獲取輸入的值第3 步 解決中文亂碼問題分析解決思路工具函數 結束 前言 USB接口的掃碼槍基本就相當于一個電腦外設&#xff0c;等同于一個快速輸…

Oracle Data Redaction與Data Pump

如果表定義了Redaction Policy&#xff0c;導出時數據會脫敏嗎&#xff1f;本文解答這個問題。 按照Oracle文檔Advanced Security Guide第13章&#xff0c;13.6.5的Tutorial&#xff0c;假設表HR.jobs定義了Redaction Policy。 假設HR用戶被授予了訪問目錄對象的權限&#xf…

Unity引擎使用InteriorCubeMap采樣制作假室內效果

Unity引擎制作假室內效果 大家好&#xff0c;我是阿趙。 ??這次來介紹一種使用CubeMap做假室內效果的方式。這種技術名叫InteriorCubeMap&#xff0c;是UE引擎自帶的節點效果。我這里是在Unity引擎里面的實現。 一、效果展示 這個假室內效果&#xff0c;要動態看才能看出效…

柏睿向量數據庫Rapids VectorDB賦能企業級大模型構建及智能應用

ChatGPT的問世,在為沉寂已久的人工智能重新注入活力的同時,也把長期默默無聞的向量數據庫推上舞臺。今年4月以來,全球已有4家知名向量數據庫公司先后獲得融資,更加印證了向量數據庫在AI大模型時代的價值。 什么是向量數據庫? 在認識向量數據庫前,先來了解一下最常見的關…

【業務功能篇62】Spring boot maven多模塊打包時子模塊報錯問題

程序包 com.xxx.common.utils不存在或者xxx找不到符號 我們項目中一般都是會分成多個module模塊&#xff0c;做到解耦&#xff0c;方便后續做微服務拆分模塊&#xff0c;可以直接就每個模塊進行打包拎出來執行部署這樣就會有模塊之間的調用&#xff0c;比如API模塊會被Service…

【SpringBoot】SpringBoot獲取不到用戶真實IP怎么辦

文章目錄 前言問題原因解決方案修改Nginx配置文件SpringBoot代碼實現 前言 項目部署后發現服務端無法獲取到客戶端真實的IP地址&#xff0c;這是怎么回事呢&#xff1f;給我都整懵逼了&#xff0c;經過短暫的思考&#xff0c;我發現了問題的真兇&#xff0c;那就是我們使用了N…