美文网首页
Django中的Templates、shell以及Admin

Django中的Templates、shell以及Admin

作者: edwin1993 | 来源:发表于2019-04-10 19:54 被阅读0次

入门概念:
https://www.jianshu.com/p/0fe287440973
开发实例:
https://www.jianshu.com/p/dabf3ad31e46

本文进一步了解Django中的Templates、shell以及Admin。


Templates过滤器

  • 过滤器
    过滤器写在模板中,是属于Django的模板语言,可以修改模板中的变量,从而显示不同的内容。

  • 使用过滤器

{{value|filter}}
{{value|filter1|filter2|...}}
例如:
{{list_nums|length}}
显示的将是list的长度
  • 实例
    可以将之前开发实例中的edit_page页面中的代码进行如下修改:

原本写法:

    {% if article %}
        <input type="hidden" name="article_id" value = "{{article.id}}"/>
        <label>文章标题:
            <input type="text" name="title" value = "{{article.title}}"/>
        </label>
        </br>
        <label>文章内容:
            <input type="text" name="content" value = "{{article.content}}"/>
        </label>
        </br>
    {% else %}
        <label>文章标题:
            <input type="text" name="title"/>
        </label>
        </br>
        <label>文章内容:
            <input type="text" name="content"/>
        </label>
        </br>
    {% endif %}

使用过滤器的写法:

<input type="hidden" name="article_id" value = "{{article.id|default:'0'}}"/>
<label>文章标题:
<input type="text" name="title" value = "{{article.title}}"/>
</label>
</br>
<label>文章内容:
<input type="text" name="content" value = "{{article.content}}"/>
</label>
</br>

更多过滤器及其用法参考官方文档:
https://docs.djangoproject.com/zh-hans/2.2/ref/templates/builtins/

Django Shell

是一个Python的交互式命令行程序
自动引入了我们的项目环境,可以用于和项目进行交互。

  • 使用方法:
    python manage.py shell

其使用基于之前的内容:

class Article(models.Model):
    title = models.CharField(max_length=32,default="title")
    content = models.TextField(null=True)
    ob = models.Manager()
    
    def __str__(self):
        return self.title
    
  • 用途
    主要用于在使用某个新内置函数时,对功能进行测试。

Admin增强用法

Admin后台用于对页面及数据进行一系列的管理。

  • 例1:

如果我们想对该类显示的内容进行配置,使得其显示出内容,修改日期等数据,就需要为其创建admin配置类:

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title','content')

admin.site.register(Article, ArticleAdmin)
  • 例2

为了使用新功能,我能先对Article对象进行修改,新加入了一个pub_time属性。

class Article(models.Model):
    title = models.CharField(max_length=32,default="title")
    content = models.TextField(null=True)
#    pub_time = models.DateTimeField(auto_now=True)
    pub_time = models.DateTimeField(null=True)
    
    ob = models.Manager()
    
    def __str__(self):
        return self.title

然后更新对象:

修改admin

class ArticleAdmin(admin.ModelAdmin):
    list_display = ('title','content','pub_time')
    list_filter = ('pub_time',)

admin.site.register(Article, ArticleAdmin)

相关文章

网友评论

      本文标题:Django中的Templates、shell以及Admin

      本文链接:https://www.haomeiwen.com/subject/bmkoiqtx.html