创建Model(1)-数据库设计

设计数据库

工作室任务管理系统.png
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
from django.db import models
from django.contrib.auth.models import User
# Create your models here.


class Myclass(models.Model):
    name = models.CharField(max_length=100)

    def __unicode__(self):
        return self.name


class WorkRoom(models.Model):
    name = models.CharField(max_length=200)

    def __unicode__(self):
        return self.name


class Student(models.Model):
    name = models.CharField(max_length=200, default=0)
    student_class = models.ForeignKey(
        Myclass,
        on_delete=models.CASCADE,
        verbose_name="student class",
    )
    work_room = models.ForeignKey(
        WorkRoom,
        default=0,
        on_delete=models.CASCADE,
        verbose_name="work room",
    )
    user = models.OneToOneField(
        User,
        on_delete=models.CASCADE,
        verbose_name="login user",
        default=0,
    )

    def __unicode__(self):
        return str(self.id) + " " + self.user.username + " " \
               + self.student_class.name + " "


class Teacher(models.Model):
    name = models.CharField(max_length=200, default=0)
    staff_no = models.CharField(max_length=20)
    STAFF_ROOM_CHOICES = (
        ('network', '计算机网络'),
        ('information', '信息技术'),
        ('software', '计算软件'),
        ('application', '计算机应用'),
        ('iot', '物联网应用'),
    )
    work_room = models.ForeignKey(
        WorkRoom,
        default=0,
        on_delete=models.CASCADE,
        verbose_name="work room",
    )
    staff_room = models.CharField(
        max_length=20,
        choices=STAFF_ROOM_CHOICES,
        default='network',
    )
    user = models.OneToOneField(
        User,
        on_delete=models.CASCADE,
        verbose_name="login user",
        default=0,
    )

    def __unicode__(self):
        return self.name


class Task(models.Model):
    title = models.CharField(max_length=200)
    content = models.TextField()
    file = models.FileField(upload_to='uploads/%Y/%m/%d')
    creator = models.ForeignKey(
        Teacher, default=0
    )
    member = models.ManyToManyField(
        Student,
    )
    create_date = models.DateTimeField(auto_now_add=True)
    update_date = models.DateTimeField(auto_now=True)
    deadline = models.CharField(max_length=200)

    def __unicode__(self):
        return self.title


class TaskReport(models.Model):
    student = models.ForeignKey(Student, default=0)
    task = models.ForeignKey(Task, default=0)
    content = models.BinaryField()
    file = models.FileField(upload_to='uploads/%Y/%m/%d')
    create_date = models.DateTimeField(auto_now=False)
    GRADE_CHOICES = (
        ('A', 'EXCELLENT'),
        ('B', 'GOOD'),
        ('C', 'NOT BAD'),
        ('D', 'BAD'),
    )
    grade = models.CharField(
        max_length=1,
        choices=GRADE_CHOICES,
        default='B',
    )
    teachers_comment = models.BinaryField()
    create_date = models.DateTimeField(auto_now=False)

写模板,登陆页面,教师登陆成功的首页,创建任务页面,显示任务详情页面

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,804评论 25 709
  • 1.使用V4包下的Fragment, FragmentManager也需要从v4中获取 2.当前Activity要...
    Mr_LJ阅读 4,630评论 0 2
  • 【你先来的,咱们两个一桌吃,一床睡,长的这么大了, 他是才来的,岂有个为他疏你的。】 宝玉对黛玉说。 青梅竹马,两...
    妖怪在流浪阅读 498评论 3 0
  • 最近有朋友问我青岛话有什么特点,教教他,我憋了半天却有点说不出了。最后突然蹦出个词:“波螺油子!”然后看着他茫然的...
    流殇夕水阅读 601评论 0 3
  • 其实,这更像是一本日记。 现在的我,同很多人一样,浑浑噩噩,处于人生迷茫阶段。心里着急啊,这样下去不是办法啊,可是...
    谷小米儿阅读 213评论 0 0