Django学习---Templates过滤器及Django shell和Admin增强

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Django学习---Templates过滤器及Django shell和Admin增强相关的知识,希望对你有一定的参考价值。

一、Templates过滤器

过滤器属于django模板语言

修改模板中的变量,从而显示不同内容

{{ value | filter }}

举例:{{ list_nums | length}}    表示list的长度

{{ value | filter | filter | filter }} 可叠加

 

django模板如果出现了不存在的变量,不会报错,只会给出空值

因此修改add_article.html   去掉{{% if *** %}} 添加过滤器default

<!DOCTYPE html>
<html>
<head>
    <title>增加新文章</title>
</head>
<body>
<form action="{% url ‘blog:sub_article‘ %}" method="post">
    {% csrf_token %}
    
        <input type=‘hidden‘ name=‘article_id‘ value="{{ article.id | default:‘0‘ }}">
        文章标题<input type="text" name=‘title‘ value=‘{{ article.title }}‘/>
        <br>
        文章内容<input type="text" name=‘content‘ value=‘{{ article.content }}‘/>
        <br>
        <input type="submit" value="提交">
    
</form>
</body>
</html>

二、Django shell

Python交互式命令行程序

自动引入项目环境

可以使用它和项目进行交互

 

启动django shell

pyhton manage.py shell

交互举例:

from blog.models import Article

Article.objects.all()

作用:1)调试工作  2)测试未知的方法

 

三、Admin增强

注册Admin配置类:

class ArticleAdmin(admin.ModelAdmin)

注册:admin.site.register(models.Article,ArticleAdmin)

显示其他字段

list_diplay = (‘title‘,‘content‘)   (就是models里的字段名)

admin.py中如下:

from django.contrib import admin
from . import models
# Register your models here.
class ArticleAdmin(admin.ModelAdmin):
    list_display = (title,content)

admin.site.register(models.Article,ArticleAdmin)

Admin过滤器

list_diplay = (‘pub_time‘,)

注意tuple中只有一个成员,要加逗号

在models。py中Article类添加发布日期

from django.db import models

# Create your models here.
class Article(models.Model):
    title = models.CharField(max_length=32,default=title)
    content = models.TextField(null=True)
    pub_time = models.DateTimeField(auto_now=True)

    def __str__(self):
        return self.title

数据移植(才可以在数据库中显示)

执行  python manage.py makemigrations

再执行 python manage.py migrate

生成了数据表

在admin.py中添加过滤器:

from django.contrib import admin
from . import models
# Register your models here.
class ArticleAdmin(admin.ModelAdmin):
    list_display = (title,content,pub_time)
    list_filter = (pub_time,)

admin.site.register(models.Article,ArticleAdmin)

 

以上是关于Django学习---Templates过滤器及Django shell和Admin增强的主要内容,如果未能解决你的问题,请参考以下文章

模板变量及模板过滤器

Django的templates(模板)

Django模板-过滤器

Django Templates — 将模板中的变量值传递给 templatetags 过滤器

django模板

Django——模板路径 模板变量 常用过滤器 静态文件的使用