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实现从web抓取文档的方法
Sep 26 Python
Python中的zip函数使用示例
Jan 29 Python
使用wxPython获取系统剪贴板中的数据的教程
May 06 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
在Python中操作日期和时间之gmtime()方法的使用
May 22 Python
Python的Asyncore异步Socket模块及实现端口转发的例子
Jun 14 Python
Python实现公历(阳历)转农历(阴历)的方法示例
Aug 22 Python
Python logging模块用法示例
Aug 28 Python
ubuntu上安装python的实例方法
Sep 30 Python
python编写计算器功能
Oct 25 Python
Python Print实现在输出中插入变量的例子
Dec 25 Python
Keras实现DenseNet结构操作
Jul 06 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
php多维数组去掉重复值示例分享
2014/03/02 PHP
Yii中创建自己的Widget实例
2016/01/05 PHP
php 解决substr()截取中文字符乱码问题
2016/07/18 PHP
Extjs学习笔记之四 工具栏和菜单
2010/01/07 Javascript
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
JS返回上一页实例代码通过图片和按钮分别实现
2013/08/16 Javascript
Angular2自定义分页组件
2017/04/19 Javascript
详解vue2.0脚手架的webpack 配置文件分析
2017/05/27 Javascript
jQuery用户头像裁剪插件cropbox.js使用详解
2017/06/07 jQuery
JS+CSS实现滚动数字时钟效果
2017/12/25 Javascript
详解vue2.0+axios+mock+axios-mock+adapter实现登陆
2018/07/19 Javascript
JS实现的视频弹幕效果示例
2018/08/17 Javascript
JS 实现获取验证码 倒计时功能
2018/10/29 Javascript
vue eslint简要配置教程详解
2019/07/26 Javascript
layui下拉列表select实现可输入查找的方法
2019/09/28 Javascript
解决vue请求接口第一次成功,第二次失败问题
2020/09/08 Javascript
jQuery实现购物车全功能
2021/01/11 jQuery
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
[11:33]DAC2018 4.5SOLO赛决赛 MidOne vs Paparazi第二场
2018/04/06 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
python 换位密码算法的实例详解
2017/07/19 Python
Python多线程同步---文件读写控制方法
2019/02/12 Python
django实现类似触发器的功能
2019/11/15 Python
python2和python3哪个使用率高
2020/06/23 Python
Django3中的自定义用户模型实例详解
2020/08/23 Python
python实现测试工具(二)——简单的ui测试工具
2020/10/19 Python
美国名牌手表折扣网站:Jomashop
2020/05/22 全球购物
环境科学毕业生自荐信
2013/11/21 职场文书
艺术设计专业个人求职信
2014/04/10 职场文书
李培根演讲稿
2014/05/22 职场文书
师德模范事迹材料
2014/06/03 职场文书
2014新生大学四年计划书
2014/09/21 职场文书
师德师风个人自我剖析材料
2014/09/27 职场文书
购房协议书范本
2014/10/02 职场文书
2015年公司行政后勤工作总结
2015/05/20 职场文书
python 网络编程要点总结
2021/06/18 Python