04.model设计

  1. 创建完自己的app后需要到 settings.py 下注册(myapp)
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'myapp',
]

注:如果要重载user方法需要需要在setting中重载AUTH_USER_MODEL

AUTH_USER_MODEL = "users.UserProfile"
  1. 找到app目录下的 models.py 进行编辑
  2. 定义自己的类(注:该类写在apps名为users的model里)
# _*_ coding: utf-8 _*_
from __future__ import unicode_literals
from datetime import datetime
from django.db import models
from django.contrib.auth.models import AbstractUser

# Create your models here.


class UserProfile(AbstractUser):
    nike_name = models.CharField(max_length=10, verbose_name="昵称", default="")
    birday = models.DateField(verbose_name="生日", null=True, blank=True)
    gender = models.CharField(choices=(("male", u"男"), ("female", u"女")), default="male", max_length=6)
    adress = models.CharField(max_length=100, default=u"", verbose_name=u"地址")
    moblie = models.CharField(max_length=11, null=True, blank=True, verbose_name=u"手机")
    image = models.ImageField(upload_to="upload/iamge/%Y/%m", default=u"image/defult.png", max_length=100)

    class Meta:
        verbose_name = "用户信息"
        verbose_name_plural = verbose_name

    def __unicode__(self):
        return self.username
  1. 打开pychrom 中 tools中的 Run manage.py Task 工具 输入 makemigrations message 然后再 migrate message

  2. 通过数据库 查看数据表是否生成功

app统一管理

如果想要把自己创建的所有app放在一个目录下统一管理 需要在setting文件中加入 sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))

from django.contrib.auth import update_session_auth_hash

import os
import sys

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0, os.path.join(BASE_DIR, 'apps'))
sys.path.insert(0, os.path.join(BASE_DIR, 'extra_apps'))

Django常用数据类型:

models.ForeignKey

models.CharField

models.DateTimeField

models.IntegerField

models.IPAddressField

models.FileField

models.ImageField

如果migrates时出现以下错误

DjangoUeditor ModuleNotFoundError: No module named 'widgets'

可以尝试去github搜DjangoUeditor3,克隆到本地,复制文件夹里面的DjangoUeditor文件夹,放到虚拟环境下的lib/site-packages/下 https://github.com/twz915/DjangoUeditor3