Django中的Templates、shell以及Admin

2019-04-10  本文已影响0人  edwin1993

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

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


Templates过滤器

{{value|filter}}
{{value|filter1|filter2|...}}
例如:
{{list_nums|length}}
显示的将是list的长度

原本写法:

    {% 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的交互式命令行程序
自动引入了我们的项目环境,可以用于和项目进行交互。

其使用基于之前的内容:

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后台用于对页面及数据进行一系列的管理。

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

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

admin.site.register(Article, ArticleAdmin)

为了使用新功能,我能先对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)
上一篇 下一篇

猜你喜欢

热点阅读