一、创建模型类:
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
class Course(models.Model):
"""课程表"""
name = models.CharField(verbose_name='课程名称', max_length=255)
description = models.TextField(verbose_name='课程描述信息', null=True)
price = models.DecimalField(verbose_name=u'课程价格', max_digits=15, decimal_places=2, default=0.0)
deleted = models.BooleanField(verbose_name='课程是否被删除', default=False)
created_at = models.DateTimeField(auto_now_add=True, db_index=True)
edited_at = models.DateTimeField(auto_now=True)
def __repr__(self):
return self.name
class User(models.Model):
"""用户表:记录用户常用信息"""
name = models.CharField(verbose_name=u'用户的姓名', max_length=32, null=True)
mobile = models.CharField(verbose_name=u'用户的手机号', max_length=32, unique=True)
courses = models.ManyToManyField(verbose_name=u'关联课程', to='Course', through='UserCourse', related_name='user_course')
class UserExtra(models.Model):
"""用户信息额外表: 存储一些用户不常用信息"""
birthday = models.CharField(verbose_name=u'生日', max_length=32, null=True)
email = models.EmailField(verbose_name=u'邮箱', null=True)
user = models.OneToOneField(to=User, related_name='extra') # 跟User表是一对一的关系
class UserCourse(models.Model):
"""课程表跟用户表手动添加的多对多表"""
course = models.ForeignKey('Course', related_name='my_course')
user = models.ForeignKey('User', related_name='my_user')
class Coursechapter(models.Model):
"""课程章节表"""
name = models.CharField(verbose_name='课程名称', max_length=255)
description = models.TextField(verbose_name='课程描述信息', null=True)
course = models.ForeignKey('Course', related_name='course_chapter')
执行以下命令,进行数据库的迁移:
python manage.py makemigrations app_name[应用的名称]
python manage.py migrate app_name[应用的名称]
迁移成功后可以进行以下的操作咯~
二、介绍不返回QuerySet的方法:
方法名
介绍
get()
获取单个对象
create()
创建对象
bulk_create()
批量创建对象
get_or_create()
查询对象,若没有找到则创建新的对象
update()
批量更新对象
update_or_create()
更新对象,若没有找到则创建新的对象
delete()
批量删除对象
first()
获取第一个对象
last()
获取最后一个对象
latest()
获取最近的对象
earliest()
获取最早的对象
count()
统计对象的个数
exists()
判断queryset中是否有对象