珠海企业建站,茶叶公司网站模板,wordpress插件 登录,seo常用工具有哪些使用Python Django框架制作一个音乐网站#xff0c; 本篇主要是后台对专辑、首页轮播图原有功能的基础上进行部分功能实现和显示优化。 目录
专辑功能优化
新增编辑
专辑语种改为下拉选项
添加单曲优化显示
新增单曲多选
更新歌手专辑数、专辑单曲数
获取歌手专辑数
保… 使用Python Django框架制作一个音乐网站 本篇主要是后台对专辑、首页轮播图原有功能的基础上进行部分功能实现和显示优化。 目录
专辑功能优化
新增编辑
专辑语种改为下拉选项
添加单曲优化显示
新增单曲多选
更新歌手专辑数、专辑单曲数
获取歌手专辑数
保存处理专辑数和单曲数
列表显示
显示专辑封面
显示专辑所属歌手
首页轮播图功能优化
字段显示优化
记录列表显示图片
总结 专辑功能优化
新增编辑
专辑语种改为下拉选项
修改专辑表模型Album 专辑语种字段使用choices参数。
langs [(国语, 国语), (普通话, 普通话), (英语, 英语), (日韩, 日韩)]
single_lang models.CharField(专辑语种, max_length50, choiceslangs, 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_idsingler_id).count() 保存处理专辑数和单曲数
在专辑表模型中重写保存方法。
单曲数通过Singe字段获取是一个set类型使用内置方法len计算数量。 重写save方法
def save(self, force_insertFalse, force_updateFalse, usingNone,update_fieldsNone): 重写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(pkself.singler_id).update(album_numalbum_num) 列表显示
显示专辑封面
默认显示的是专辑封面路径。 修改player/admin.py中专辑后台类中封面自定义返回。
内容如下
def get_cover(self):return format_html(img src/media/{} width100px height100px/.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_toupload_save_path,help_text请选择上传首页轮播图)href models.CharField(跳转路径,max_length100,help_text请输入点击图片后跳转路径 记录列表显示图片
修改player/admin.py文件展示轮播图列表中显示路径改为显示图片
还是通过format_html。
内容如下
class CarouselAdmin(admin.ModelAdmin): 后台首页轮播图类 def get_path(self):return format_html(img src/media/{} width200px height100px/,self.path,)get_path.short_description 图片路径def get_href(self):return self.hrefget_href.short_description 跳转路径# 显示字段list_display [id, get_path, get_href]
效果 总结
操作后台管理自定义时目前主要通过两方面来改变一个是表模型另一个是通过后台类。