2.启用Admin

启用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账号。

再次还可以新增,修改,删除

声明:原创文章,版权所有,转载请注明出处,https://litets.com。