Django 站点管理(Admin)

Admin工作原理

django.contrib下的各个模块就是一个个Django App,它们有自己的模块、模板、视图、URLPatterns,跟我们创建处理的app一样的操作。admin的工作流程大致如下:

关于Admin 的拓展

(1)字段类型操作
默认情况下,所有的字段都默认blank=False,即不允许输入空值
null与blank的区别null表示什么都没有,blank表示空白,null=True表示允许什么都没有,blank=True表示允许空白,空白不代表什么都没有,空字符串就是空白的值;对于数值型,布尔型的字段,null=True,blank=False表示允许什么都没有,但不允许为空字符串。
日期型、时间型和数字型字段不接受空字符串
,如果插入空字符串则会出错,为了避免错误出现,我们可以运行它里面什么都没有,在Django模块中,可以通过添加null=True来指定一个字段允许为NULL。日期型(DateField、TimeField、DateTimeField)或数字型(IntegerField、DecimalField、FloatField)字段为空,你需要使用null=True  和 blank=True。
注意:添加null=True比添加blank=True复杂。因为null=True改变了数据的语义,即改变了CREATE TABLE语句,把publication_date字段上的NOT NULL删除了。 要完成这些改动,我们还需要更新数据库。
(2)字段标签的操作

默认情况下,在后台显示从模块的字段名称生成的,规则:用空格替换下划线;首字母大写。例如:Book模块中publication_date的标签是Publication date。

自定义一个标签,可以添加verbose_name:(verbose: 冗长的;啰嗦的),可能意思就是设置简单的标签替换 冗长的;啰嗦的标签吧。

email = models.EmailField(blank=True, verbose_name='e-mail' )

为了使语法简洁,你可以把它当作固定位置的参数传递:

 name = models.CharField(u'产品名称',max_length=30)             #产品名称

注意:这不适用于ManyToManyField 和ForeignKey字段,因为它们第一个参数必须是模块类。 那种情形,必须显式使用verbose_name这个参数名称。

通过django的meta类来修改自动后台显示的模块名称。


(3)修改显示
        详情见: http://djangobook.py3k.cn/2.0/chapter06/



你可能感兴趣的:(Django)