设置中文:
LANGUAGE_CODE = 'zh-hans'
设置时区:
settings.py 修改
TIME_ZONE = 'Asia/Shanghai'
创建超级管理员:
python manage.py createsuperuser
重置DJango Admin 管理员密码:
如果你忘记了Admin的密码的话,那么就要用Django shell
python manage.py shell
2、重置密码
from django.contrib.auth.models import User
user = User.objects.get(username='admin') #你的Admin 管理员帐号
user.set_password('新密码')
user.save()
在 app 下的 admin.py 中注册对应的数据库表:
注意:也可以写在app01.models.py 下注册 ,不过需要导入admin模块
app01.admin.py
from django.contrib import admin
from app01 import models #导入对应的表
admin.site.register(models.Host) #注册数据库中的表
此时后台即可以看到对应的表
设置数据表默认名称:
修改:app01.models.py,新增以下内容
class Meta:
verbose_name_plural = ' 主机表 ' 类名复数形式_(数据库表的名称)
verbose_name = ' 主机信息 ' 类(表)名
from django.db import models
class Host(models.Model):
hostname=models.CharField(max_length=256)
ip=models.GenericIPAddressField()
#新增以下内容:
class Meta:
verbose_name_plural = '主机表'
verbose_name = '主机信息'
设置每个数据库表的内容展示界面:
方式一: __str__ 参考:https://my.oschina.net/esdn/blog/826052
让主机信息下面的字段(实例对象)显示对应实例对象的属性,而不显示 xxx object
此时则需要使用 __str__ 方法了
修改app01.models.py ,新增 __str__ ,代码如下
from django.db import models
class Host(models.Model):
hostname=models.CharField(max_length=256)
ip=models.GenericIPAddressField()
#新增以下内容:
class Meta:
verbose_name_plural = '主机表'
verbose_name = '主机信息'
def __str__(self): #新增
return self.hostname #让每个实例对象只显示 hostname
此时 Django 后台页面显示内容为
方式二:list_display
Tips:此时 class Meta: 下的 verbose_name = '主机信息' 不起作用,但你可以在数据库的模型字段中 增加 verbose_name
修改app01.models.py
from django.db import models
from django.contrib import admin #导入admin 模块
class Host(models.Model):
hostname=models.CharField(max_length=256,verbose_name ='主机信息1') # 新增 verbose
ip=models.GenericIPAddressField(verbose_name ='IP地址')
#新增以下内容:
class Meta:
verbose_name_plural = '主机表'
verbose_name = '主机信息' # 有list_display 时不起作用
ordering=('-ip',) #排序方式
def __str__(self):
return self.hostname
class HostInfoAdmin(admin.ModelAdmin): #需要导入admin
list_display = ('hostname', 'ip')
admin.site.register(Host,HostInfoAdmin)
#在admin 下注册 Host 和HostInfoAdmin,需放注册的类后面
#注册可在admin.py 或models.py 的任意一个地方
后台筛选(条件过滤)
list_filter = ('pay_status', 'goods_status')
条件过滤
search_fields = ('no',)
后台字段CSS颜色:
from django.contrib import admin
from app.models import Order
class OrderAdmin(admin.ModelAdmin):
def get_money(self, obj): #颜色设置
if obj.money <= 0:
return '<span style="color:red">%s</span>' % obj.money
else:
return '<span style="color:green">%s</span>' % obj.money
get_money.short_description = '金额' #字段名称
get_money.allow_tags = True #字段HTML 转义
.short_description 字段名称
.allow_tags html 转义