Django Admin

设置中文:
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 转义

转载于:https://my.oschina.net/esdn/blog/825208

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值