zoukankan      html  css  js  c++  java
  • or的代码实现逻辑以及美化django admin

    数据库里or的代码实现逻辑是|,model_test.py里新增代码如下图:

    打印的结果如下图:

    正常是这样显示的如下图:

    然后pip install simpleui或者pip3 install simpleui,回车就可以把simpleui-3.9的安装好,然后把simpleui放到settings.py的INSTALLED_APPS下,如下图:

    刷新http://127.0.0.1:8000/admin,可以看到django admin管理和之前的不一样了,如下图:

    进来后页面也变化了,在文章里只显示一个文章标题字段这一列,如果想多显示几个字段,可以在admin.py里定义一个类,新增代码如下图:

    刷新页面,可以看到四个字段,如下图:

    在list_display下面输入search_fields = ['title']模糊搜索功能,不能输入带外键的字段,要不然刷新或点搜索按钮的时候会报错,如category(在Category类里),search_fields = ['title', 'category'],这样写就报错了,如下图:

    在search_fields下面输入list_filter = ['category', 'is_delete'],筛选,按照多个字段筛选,也可以输入一个,如下图:

    list_filter下面输入list_per_page = 10,每页显示多少条文章,如下图:

    也可以改变主题,选一个颜色,也可以全屏展示,也可以设置字号,新增代码如下图:

    前端某个字段要做特殊处理,描述字段内容超过10个,后面的显示...:

    实现这个功能,在user目录下新建一个目录,叫templatetags,只能叫这个名字,不能叫别的,然后在templatetags下面再建两个文件,一个叫__init__.py,另一个随便叫,我的是my_tag.py,my_tag.py中的代码如下图:

    在index.html里就可以调这个函数,把article.describe传给了test函数里的形参,length传给了20,index.html新增的代码如下图:

    在index.html里class=r_box,第一个函数的用法如下图:

    在index.html里class=r_box,第二个函数的用法如下图:

    刷新页面,可以看到描述是长度20...,如下图:

    再把代码恢复过来,<p>{{ article.describe }}</p>

    为了让详情页里显示的时间格式正常,在info.html里写上<li class="timer">时间:{{ article.create_time | date:'Y-m-d H:i:s'}}</li>,加粗的是后加上的,刷新详情页可以正常显示时间格式,如下图:

    在templates目录下新建一个html文件,xiake.html,新增代码如下图:

    在views.py里新建一个函数,代码如下图:

    在urls.py里导入xiake,在添加路径path('xiake/', xiake),,刷新http://127.0.0.1:8000/xiake/,浏览器没有解析,还是字符串,如下图:

    不加safe这个字符串是不安全的,在xiake.html里修改代码为s|safe,加个safe就能识别出来这是一个html标签,就能弹出100px大小的哈哈哈,如下图:

    在templates里把test1.html文件放进去了,里面有好多django自带的过滤器,可以试一下

    在templates目录下新建一个html文件,form.html,新增代码如下图:

    在views.py里新增代码如下图:

    在urls.py里导入add_article,再新增path('add_article/', add_article),,在浏览器里输入http://127.0.0.1:8000/add_article/,点击回车,弹出如下图:

    CSRF是为了防止重复提交,django默认post请求都需要加csrf token,如果不加请求不成功,为了解决这一问题,第一种方法是在settings.py里注释掉MIDDLEWARE->'django.middleware.csrf.CsrfViewMiddleware',,另一种方法是在form.html里增加如下代码:

    首先访问http://127.0.0.1:8000/add_article/,获取文本框页面是get请求,获取分类导航,然后把form.html的内容渲染到页面,接下来在各个input框里输入内容,点击提交按钮,是post请求,提交成功后可以去article表里看插入的文章成功了,然后重定向到index页面,这个是fvb的方式,f是function,v是views,接下来用cvb的方式,c是class,v是views,views.py修改代码如下图:

    在urls.py里新增的代码如下图:

    cvb比fvb更好用

  • 相关阅读:
    Linux系统模拟端口开放程序port 软件的基本使用
    Docker19.03.13离线安装-Docker根目录-Docker常用操作--NVIDIA Docker
    springboot项目启动与停止命令
    两种设备选型的主要性能指标
    docker nginx配置
    使用shell+java 抓取NHK广播
    小程序的测试方法
    adb logcat 查看Android APP日志
    IE11判断是否全是中文的时候无效写法
    C#控制器微信通过encryptedData,iv,Code获取用户信息
  • 原文地址:https://www.cnblogs.com/laosun0204/p/12242975.html
Copyright © 2011-2022 走看看