update. 完成前端页面展示、列表和详情页
update. 调整融合主菜单与板块 update. 分离新闻模块
This commit is contained in:
+11
-8
@@ -1,9 +1,14 @@
|
||||
from django.contrib import admin
|
||||
from django.contrib.auth.admin import UserAdmin as BaseUserAdmin
|
||||
from import_export.admin import ImportExportModelAdmin
|
||||
|
||||
from .models import User
|
||||
from .models import Department
|
||||
from .models import Role, Permission
|
||||
|
||||
|
||||
@admin.register(User)
|
||||
class UserAdmin(BaseUserAdmin):
|
||||
class UserAdmin(BaseUserAdmin, ImportExportModelAdmin):
|
||||
list_display = ('username', 'cname', 'dept', 'is_active', 'is_staff')
|
||||
list_filter = ('is_active', 'is_staff', 'dept')
|
||||
search_fields = ('username', 'cname')
|
||||
@@ -22,31 +27,29 @@ class UserAdmin(BaseUserAdmin):
|
||||
ordering = ('username',)
|
||||
filter_horizontal = ('groups', 'user_permissions', 'roles') # 如果 roles 是 ManyToMany
|
||||
|
||||
from django.contrib import admin
|
||||
from .models import Department
|
||||
|
||||
@admin.register(Department)
|
||||
class DepartmentAdmin(admin.ModelAdmin):
|
||||
class DepartmentAdmin(ImportExportModelAdmin):
|
||||
list_display = ('name', 'parent', 'order')
|
||||
list_filter = ('parent',)
|
||||
search_fields = ('name',)
|
||||
ordering = ('order', 'name')
|
||||
from django.contrib import admin
|
||||
from .models import Role, Permission
|
||||
|
||||
|
||||
@admin.register(Role)
|
||||
class RoleAdmin(admin.ModelAdmin):
|
||||
class RoleAdmin(ImportExportModelAdmin):
|
||||
list_display = ('name', 'permission_count')
|
||||
search_fields = ('name',)
|
||||
filter_horizontal = ('permissions',)
|
||||
|
||||
def permission_count(self, obj):
|
||||
return obj.permissions.count()
|
||||
|
||||
permission_count.short_description = "权限数量"
|
||||
|
||||
|
||||
@admin.register(Permission)
|
||||
class PermissionAdmin(admin.ModelAdmin):
|
||||
class PermissionAdmin(ImportExportModelAdmin):
|
||||
list_display = ('resource', 'action', 'desc')
|
||||
list_filter = ('resource', 'action')
|
||||
search_fields = ('resource', 'desc')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
# Generated by Django 6.0.3 on 2026-03-24 10:31
|
||||
# Generated by Django 6.0.3 on 2026-04-01 00:55
|
||||
|
||||
import django.contrib.auth.models
|
||||
import django.db.models.deletion
|
||||
|
||||
@@ -0,0 +1,46 @@
|
||||
import os
|
||||
import sys
|
||||
|
||||
import django
|
||||
from faker import Faker
|
||||
|
||||
# 配置 Django 环境
|
||||
sys.path.append(os.path.dirname(os.path.abspath(__file__)))
|
||||
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "server.settings") # 修改为你的 settings 路径
|
||||
django.setup()
|
||||
|
||||
from users.models import User
|
||||
|
||||
# 初始化 Faker,设置中文(如果需要中文名)
|
||||
fake = Faker('zh_CN')
|
||||
|
||||
|
||||
def seed_users(count=5):
|
||||
print(f"正在生成 {count} 个用户...")
|
||||
|
||||
users = []
|
||||
for i in range(count):
|
||||
# 生成随机用户名
|
||||
username = fake.user_name()
|
||||
|
||||
# 检查用户名是否已存在,避免冲突
|
||||
if User.objects.filter(username=username).exists():
|
||||
continue
|
||||
|
||||
user = User.objects.create_user(
|
||||
username=username,
|
||||
email=fake.safe_email(),
|
||||
password='password123', # 统一密码,方便测试登录
|
||||
is_active=True,
|
||||
is_staff=False, # 随机是否为管理员
|
||||
first_name=fake.first_name(),
|
||||
last_name=fake.last_name()
|
||||
)
|
||||
users.append(user)
|
||||
print(f" - 创建用户: {username} (密码: password123)")
|
||||
|
||||
print("用户生成完毕!")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
seed_users(10)
|
||||
Reference in New Issue
Block a user