Django课堂签到系统的models.py学生表教师表用户表课程表签到表如何编写
时间: 2024-06-11 22:10:07 浏览: 172
下面是Django课堂签到系统的models.py中,学生表、教师表、用户表、课程表和签到表的代码:
```python
from django.db import models
class Student(models.Model):
name = models.CharField(max_length=50)
student_id = models.CharField(max_length=20, unique=True)
email = models.EmailField()
def __str__(self):
return self.name
class Teacher(models.Model):
name = models.CharField(max_length=50)
teacher_id = models.CharField(max_length=20, unique=True)
email = models.EmailField()
def __str__(self):
return self.name
class User(models.Model):
username = models.CharField(max_length=50, unique=True)
password = models.CharField(max_length=50)
is_student = models.BooleanField(default=True)
is_teacher = models.BooleanField(default=False)
def __str__(self):
return self.username
class Course(models.Model):
name = models.CharField(max_length=100)
course_code = models.CharField(max_length=20, unique=True)
teacher = models.ForeignKey(Teacher, on_delete=models.CASCADE)
students = models.ManyToManyField(Student)
def __str__(self):
return self.name
class Attendance(models.Model):
student = models.ForeignKey(Student, on_delete=models.CASCADE)
course = models.ForeignKey(Course, on_delete=models.CASCADE)
date = models.DateField()
is_present = models.BooleanField(default=False)
def __str__(self):
return f"{self.student} - {self.course} - {self.date}"
```
说明:
1. 学生表(Student):包括学生的姓名、学号和邮箱。
2. 教师表(Teacher):包括教师的姓名、工号和邮箱。
3. 用户表(User):包括用户的用户名、密码和身份(学生或教师)。
4. 课程表(Course):包括课程的名称、课程代码、教师和学生。
5. 签到表(Attendance):包括学生、课程、日期和是否出席。
在这个模型中,学生和教师是两个不同的实体,但是它们共用了一个用户表。课程表和签到表之间通过外键关联,一个课程可以有多个签到记录,每个签到记录对应一个学生和一个日期。
阅读全文