Django自定义列表 models字段显示方式


Posted in Python onApril 03, 2020

Models.py中

class article(models.Model):
 id = models.AutoField(primary_key=True,verbose_name ='编号')
 title = models.CharField(max_length=100,verbose_name ='标题')
 content = models.CharField(max_length=20000,verbose_name ='正文')
 create_time = models.DateTimeField(verbose_name ='创建时间')
 change_time = models.DateTimeField(verbose_name ='修改时间')
 excerpt = models.CharField(max_length=200,blank=True,verbose_name ='摘要')

 type = models.ForeignKey(category,verbose_name ='类别')
 tags = models.ManyToManyField(tags,blank=True,verbose_name ='标签')

 class Meta:
  verbose_name = '文章列表'
  verbose_name_plural = '文章列表'

 def __str__(self):
  return self.title

我们可以在这基础上改进,添加其它字段,从而改变django后台admin 数据库列表字段的显示。 这个页面应该提供便利,比如说:在这个列表中可以看到编号,标题,发布时间。如果能按照编号,发布时间来排序,那就更好了。

为了达到这个目的,我们将为articel模块定义一个ModelAdmin类。 这个类是自定义管理工具的关键,其中最基本的一件事情是允许你指定列表中的字段。 打开admin.py并修改:

from django.contrib import admin
from .models import category,tags,article

# Register your models here.

class articleAdmin(admin.ModelAdmin):
 list_display = ('id','title','create_time','change_time','type') #添加字段显示
 search_fields = ('title','create_time') #添加快速查询栏

admin.site.register(category)
admin.site.register(tags)
admin.site.register(article,articleAdmin)

补充知识:Django----将列表按照一定的顺序展示

1、要求:按照文章的时间降序排列,并且只展示前5篇文章

2、需要用到:list的切片知识

###改造view.py中的视图方法

#列表页
def get_article(request):
 article_list = Article.objects.all();
 #按照文章时间排序(并且是降序排列)
 order_3_list=Article.objects.order_by('-articel_date')[:3]------------->使用order_by('字段名称'),order_by('-字段名称')【前面加一个减号,表示降序】
 page=request.GET.get('page');
 if page:
  page=int(page);

 else:
  page=1;
 print('PAGE 参数为:',page);

 #实例化一个分页组件,第一个参数是需要被分页的列表,第二个参数是每一个的item个数
 paginator=Paginator(article_list,2);
 #page方法,传入一个参数,表示第几页的列表,这边传入的page,是你在地址中写的参数
 page_article_list=paginator.page(page);
 page_num=paginator.num_pages
 print('page_num:',page_num);
 #判断是否存在下一页
 if page_article_list.has_next():
  next_page=page+1;

 else:
  next_page=page;
 if page_article_list.has_previous():
  previous_page=page-1;
 else:
  previous_page=page;

 return render(request,'index.html',{
  'article_list':page_article_list,
  "order_3_list":order_3_list,--------------->把这个东西传回前端
  'page_num':range(1,page_num+1),
  'curr_page':page,
  'next_page':next_page,
  'previous_page':previous_page
 })

#前端改造

 <div class="col-md-3" role="complementary">
  <div><h2>持续更新中......</h2>
   {% for article in order_3_list %}

   <h4><a href="get_detail/{{ article.article_id }}" rel="external nofollow" >{{article.article_title}}</a></h4>
   {% endfor %}

  </div>

查看结果,调试正常,加油?(^ω^)?

以上这篇Django自定义列表 models字段显示方式就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获取豆瓣电影简介代码分享
Jan 16 Python
Python实现读取TXT文件数据并存进内置数据库SQLite3的方法
Aug 08 Python
python实现C4.5决策树算法
Aug 29 Python
浅谈python脚本设置运行参数的方法
Dec 03 Python
使用python对多个txt文件中的数据进行筛选的方法
Jul 10 Python
分享一个pycharm专业版安装的永久使用方法
Sep 24 Python
python面向对象之类属性和类方法案例分析
Dec 30 Python
借助Paramiko通过Python实现linux远程登陆及sftp的操作
Mar 16 Python
python实现批量修改文件名
Mar 23 Python
Python库skimage绘制二值图像代码实例
Apr 10 Python
python selenium 获取接口数据的实现
Dec 07 Python
python 第三方库paramiko的常用方式
Feb 20 Python
使用Django清空数据库并重新生成
Apr 03 #Python
Python基础类继承重写实现原理解析
Apr 03 #Python
Django实现列表页商品数据返回教程
Apr 03 #Python
Python第三方库的几种安装方式(小结)
Apr 03 #Python
在PyTorch中使用标签平滑正则化的问题
Apr 03 #Python
pip install 使用国内镜像的方法示例
Apr 03 #Python
pycharm解决关闭flask后依旧可以访问服务的问题
Apr 03 #Python
You might like
ThinkPHP自动验证失败的解决方法
2011/06/09 PHP
ThinkPHP实现非标准名称数据表快速创建模型的方法
2014/11/29 PHP
php实现微信企业号支付个人的方法详解
2017/07/26 PHP
使用laravel和ajax实现整个页面无刷新的操作方法
2019/10/03 PHP
使用jquery实现的一个图片延迟加载插件(含图片延迟加载原理)
2014/06/05 Javascript
Javascript正则控制文本框只能输入整数或浮点数
2014/09/02 Javascript
javascript中判断json的方法总结
2015/08/27 Javascript
jquery实现简单合拢与展开网页面板的方法
2015/09/01 Javascript
BootStrap智能表单实战系列(四)表单布局介绍
2016/06/13 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
微信小程序之小豆瓣图书实例
2016/11/30 Javascript
jquery获取transform里的值实现方法
2017/12/12 jQuery
nodejs多版本管理总结
2018/04/03 NodeJs
纯js封装的ajax功能函数与用法示例
2018/05/14 Javascript
使用bootstrap实现下拉框搜索功能的实例讲解
2018/08/10 Javascript
微信JS-SDK updateAppMessageShareData安卓不能自定义分享详解
2019/03/29 Javascript
JavaScript展开操作符(Spread operator)详解
2019/07/20 Javascript
Layui表格行工具事件与数据回填方法
2019/09/13 Javascript
Selenium执行Javascript脚本参数及返回值过程详解
2020/04/01 Javascript
[03:06]V社市场总监Dota2项目负责人Erik专访:希望更多中国玩家加入DOTA2
2014/07/11 DOTA
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
Python 2/3下处理cjk编码的zip文件的方法
2019/04/26 Python
对python中的*args与**kwgs的含义与作用详解
2019/08/28 Python
python、Matlab求定积分的实现
2019/11/20 Python
详解Pycharm安装及Django安装配置指南
2020/09/15 Python
Mountain Warehouse波兰官方网站:英国户外品牌
2019/08/29 全球购物
会计电算化专业求职信
2014/06/10 职场文书
专科生就业求职信
2014/06/22 职场文书
应届生自荐书
2014/06/23 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
2015建军节87周年演讲稿
2015/03/19 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书
入党积极分子考察意见
2015/06/02 职场文书
大一新生军训新闻稿
2015/07/17 职场文书
JVM钩子函数的使用场景详解
2021/08/23 Java/Android
Android Gradle 插件自定义Plugin实现注意事项
2022/06/16 Java/Android