一、修改admin自带的标题
django 广受欢迎的一个功能是内置的 Web 管理界面,在这里你可以浏览、标记和删除模型实例表示的数据。
打开 Web 浏览器,访问 http://127.0.0.1:8000/admin/。你会看到登录界面。使用创建超级用户时提供的凭据登录。
修改默认的Django标题
admin.site.site_header = '我在左上角'
admin.site.site_title = '我在浏览器标签'
admin.site.index_title = '我在后台首页'
二、修改admin显示的app应用名称和数据库表的名称
1、原始的后台管理展示的app应用名称和数据库表的名称
2、修改后的后台管理展示的app应用名称和数据库表的名称
修改方法:
app名称的修改:在app应用下的__init__.py
下添加如下代码
from os import path
from django.apps import AppConfig
VERBOSE_APP_NAME = "YOUR VERBOSE APP NAME HERE"
def get_current_app_name(file):
return path.dirname(file).replace('\\', '/').split('/')[-1]
class AppVerboseNameConfig(AppConfig):
name = get_current_app_name(__file__)
verbose_name = u'水质检测'
default_app_config = get_current_app_name(__file__) + '.__init__.AppVerboseNameConfig'
数据库表的名称的修改:在app应用下的models.py
下添加如下代码:
class Meta:
db_table = ''
managed = True
verbose_name = '城市'
verbose_name_plural = '城市'
完整如下:
class City(models.Model):
province = models.ForeignKey(Province,on_delete=models.CASCADE)
city = models.CharField(max_length=50)
def __str__(self):
return self.city
class Meta:
db_table = ''
managed = True
verbose_name = '城市'
verbose_name_plural = '城市'
三、对于想要根据数据库查询某一字段时,需要添加search_fields
字段:
如:
search_fields = ('name',)
完整如下
@admin.register(Factory)
class FactoryAdmin(AjaxAdmin):
list_display = ['name','date','ph','cod','nh4','city']
#根据name查询数据
search_fields = ('name',)
又如数据表A关联另外一个表B,想要根据表A查询表B的数据需要在应用下的admin.py
进行如下操作:
@admin.register(Factory)
class FactoryAdmin(AjaxAdmin):
list_display = ['name','date','ph','cod','nh4','city']
#city__cit表示查询city表下的city字段
search_fields = ('name','city__city')
首先模型(应用下的models.py
)如下:
class City(models.Model):
province = models.ForeignKey(Province,on_delete=models.CASCADE)
city = models.CharField(max_length=50)
def __str__(self):
return self.city
class Meta:
db_table = ''
managed = True
verbose_name = '城市'
verbose_name_plural = '城市'
class Factory(models.Model):
city = models.ForeignKey(City,on_delete=models.CASCADE)
name = models.CharField(max_length=25)
date = models.CharField(max_length=50)
ph = models.CharField(max_length=20)
cod = models.CharField(max_length=20)
nh4 = models.CharField(max_length=20)
level = models.CharField(max_length=20)
class Meta:
db_table = ''
managed = True
verbose_name = '排放点'
verbose_name_plural = '排放点'