django admin 的操作 新
在settings.py中加上
LANGUAGE_CODE = 'zh-Hans'
就可以在admin页面中显示中文了
models.py
from django.db import models from django.contrib.auth.models import User as Usersss # Create your models here. class User(models.Model): name = models.CharField(max_length=48, null=False, verbose_name='姓名') password = models.CharField(max_length=48, null=False, verbose_name='密码') #verbose_name='密码'这个字段可以定义amdin页中现限时的内容 email = models.EmailField( verbose_name='邮箱') role = models.ForeignKey(to='Role', on_delete=None,null=True) class Meta: db_table = 'appad_user' verbose_name_plural = verbose_name = '用户' #当是复数和单数时使用那个表名 def get_email(self): return self.email +'hahaha' class Role(models.Model): choice = ( (1, '技术部'), (2, '行政'), (3, '人事'), (4, "财务"), ) role_name = models.IntegerField(choices=choice,default=1,null=False) authors = models.ManyToManyField(to='Authority',default=None) def __str__(self): return self.choice[self.role_name-1][1] class Authority(models.Model): name = models.CharField(max_length=32)
admin.py
from django.contrib import admin # Register your models here. from app01 import models class UserInline(admin.StackedInline): # TabularInline extra = 0 model = models.User class UserAdmin(admin.ModelAdmin): search_fields = ['name','email'] # 这里支持搜索多个字段 list_display_links = ['name'] #可以点击跳转到编辑页,注意不能跟list_editable是相同的字段 list_editable = ['password'] #可以编辑的列,选定后可以直接编辑 list_filter = ['name'] #筛选过滤器,可以点选 # 定制Action行为具体方法 def func(self, request, queryset): print(self, request, queryset) print(request.POST.getlist('_selected_action')) def edit(self): print('123') return 123 list_display = ['name', 'password','role',edit] #这里可以调用写好的函数,并能展示相应的内容, func.short_description = "中文显示自定义Actions" actions = [func, ] # Action选项都是在页面上方显示 actions_on_top = True # Action选项都是在页面下方显示 actions_on_bottom = False # 是否显示选择个数 actions_selection_counter = True # raw_id_fields = ['role',] #会现实详情 # fields = ['role',] #添加时可以写入的字段,默认所有字段可以写 # exclude = ['name',] #定制搜索功能 def get_search_results(self, request, queryset, search_term): queryset, use_distinct = super(UserAdmin, self).get_search_results(request, queryset, search_term) try: search_term_as_int = int(search_term) queryset |= self.model.objects.filter(password=search_term_as_int) except: pass return queryset, use_distinct admin.site.register(models.User, UserAdmin) # 第一个参数可以是列表 class RoleAdmin(admin.ModelAdmin): search_fields = ['role_name'] # 这里支持搜索多个字段 list_display = ['role_name'] # inlines = [AuthorityInline] list_display_links = ['role_name'] inlines = [UserInline]#详细页面,如果有其他表和当前表做FK,那么详细页面可以进行动态增加和删除 admin.site.register(models.Role, RoleAdmin) class AuthorityAdmin(admin.ModelAdmin): search_fields = ['name'] # 这里支持搜索多个字段 list_display = ['name'] list_display_links = ['name'] admin.site.register(models.Authority, AuthorityAdmin)


浙公网安备 33010602011771号