Django自定义列表 models字段显示方式
时间:2022-07-28
本文章向大家介绍Django自定义列表 models字段显示方式,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
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字段显示方式就是小编分享给大家的全部内容了,希望能给大家一个参考。
- Redis(2):常用命令详解
- C#移动跨平台开发(2)Xamarin移动跨平台解决方案是如何工作的?
- Ruby(3):基本语法中
- Python(3):文件读写与异常
- 向ASP.NET Core迁移
- Gitlab CI 自动部署 asp.net core web api 到Docker容器
- 从XMLHttpRequest请求响应里getResponseHeader(header)报错:Refused to get unsafe header "**" 问题解决
- 全面理解 ASP.NET Core 依赖注入
- jq实现上传头像并实时预览功能
- 初探领域驱动设计(2)Repository在DDD中的应用
- js取整并保留两位小数的方法
- 异步编程 In .NET
- 判断标签是否包含class的方法
- vue.js使用props在父子组件之间传参
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Hibernate第二天:Hibernate的一级缓存、其他的API
- pytest 测试框架学习(12):pytest.deprecated_call
- Pinstaller(Python打包为exe文件
- pytest 测试框架学习(14):pytest.warns
- ImportError: /lib64/libm.so.6: version `CXXAB_1.3.8.' not found (required by /usr/local/python37/lib
- pytest 测试框架学习(15):pytest.freeze_includes
- Linux: scp文件,目录上传下载标准版
- Hibernate第三天:Hibernate的一对多配置、Hibernate的多对多的配置
- Git: 掉坑记 -- git reset 杀手
- ModuleNotFoundError: No module named 'phkit.pinyin'
- Hibernate第四天:Hibernate的查询方式、抓取策略
- 爬虫抓取博客园前10页标题带有Python关键字(不区分大小写)的文章
- Python爬虫抓取唐诗宋词
- ImportError: /lib64/libm.so.6: version `GLIBC_2.23' not found (required by /usr/local/python37/lib/p
- 数据分析与数据挖掘 - 02基础操练