启用Django自带的管理后台
自定义User
mysite/models.py
from django.db import models from django.contrib.auth.models import AbstractUser # 继承系统的user 自定义user class User(AbstractUser): # 手机号 phone = models.CharField(verbose_name='手机号码', max_length=11, null=True, unique=True) # 昵称 nickname = models.CharField(verbose_name='昵称',max_length=25, null=True) # 头像 avatar = models.URLField(verbose_name='头像', null=True) # 信息修改时间 modify_date = models.DateTimeField(verbose_name='最后修改时间',auto_now_add=True) def __str__(self): return '%s %s' %(self.username, self.email)
注册到admin
mysite/admin.py
from django.contrib import admin from mysite.models import User ''' 装饰器 和 函数注册是一样的效果 ''' # @admin.register(User) class UserAdmin(admin.ModelAdmin): # 设置在后台中展示的字段 list_display = ('username', 'phone', 'email', 'nickname', 'date_joined') admin.site.register(User, UserAdmin)
配置自定义user
如果更改了Django本身的admin User必须在setting.py中通知Django项目使用的是那个类
# 在设置中添加一行 格式:app名称.类名 AUTH_USER_MODEL = "mysite.User"
其他设置
更改语言和时区,修改setting.py中的
LANGUAGE_CODE = 'zh-hans' # 使用中文 TIME_ZONE = 'Asia/Shanghai' # 东8区
同步数据库
Django支持多种数据库,此处我们使用默认的sqlite3
其他数据库的设置在setting.py:
DATABASES = { 'default': { 'ENGINE': 'django.db.backends.sqlite3', 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), } }
1.记录数据库变更
$ python3 manage.py makemigrations Migrations for 'mysite': mysite/migrations/0001_initial.py - Create model User (my_blog) 192:my_blog yuh$ python3 manage.py migrate
2.将数据model变更同步到数据库
$ python3 manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, mysite, sessions Running migrations: Applying contenttypes.0001_initial... OK Applying contenttypes.0002_remove_content_type_name... OK Applying auth.0001_initial... OK Applying auth.0002_alter_permission_name_max_length... OK Applying auth.0003_alter_user_email_max_length... OK Applying auth.0004_alter_user_username_opts... OK Applying auth.0005_alter_user_last_login_null... OK Applying auth.0006_require_contenttypes_0002... OK Applying auth.0007_alter_validators_add_error_messages... OK Applying auth.0008_alter_user_username_max_length... OK Applying auth.0009_alter_user_last_name_max_length... OK Applying auth.0010_alter_group_name_max_length... OK Applying auth.0011_update_proxy_permissions... OK Applying mysite.0001_initial... OK Applying admin.0001_initial... OK Applying admin.0002_logentry_remove_auto_add... OK Applying admin.0003_logentry_add_action_flag_choices... OK Applying sessions.0001_initial... OK
创建超级用户
$ python3 manage.py createsuperuser Username: admin # 用户名 Email address: admin@litets.com # 邮箱 Password: #密码 输入会看不到 Password (again): #密码 输入会看不到 Superuser created successfully.
启动服务
$ python3 manage.py runserver
在浏览其中输入 http://127.0.0.1:8000/admin
,然后使用上面创建的超级账号登录进去。可以看到 有个MYSITE/用户栏目,点击修改,可以看到我们添加的admin账号。
再次还可以新增,修改,删除