Django 会议室预定

表结构分析:

from django.db import models

# Create your models here.
from django.db import models
from django.contrib.auth.models import AbstractUser


# 使用了django原生的user表
class UserInfo(AbstractUser):
    tel = models.CharField(max_length=32)


# 会议室表
class Room(models.Model):
    """
    会议室表
    """
    caption = models.CharField(max_length=32)  # 会议室名称
    num = models.IntegerField()  # 容纳人数

    def __str__(self):
        return self.caption

# 预定信息
class Book(models.Model):
    """
    会议室预定信息

    """
    user = models.ForeignKey('UserInfo', on_delete=models.CASCADE)  # 预定的人
    room = models.ForeignKey('Room', on_delete=models.CASCADE)  # 预定的房间
    date = models.DateField()  # 预定会议室时间
    # 这里只是定义了一个元祖而已
    time_choices = (
        (1, '8:00'),
        (2, '9:00'),
        (3, '10:00'),
        (4, '11:00'),
        (5, '12:00'),
        (6, '13:00'),
        (7, '14:00'),
        (8, '15:00'),
        (9, '16:00'),
        (10, '17:00'),
        (11, '18:00'),
        (12, '19:00'),
        (13, '20:00'),
    )

    time_id = models.IntegerField(choices=time_choices)

    class Meta:
        # 联合唯一不能重复,限制了不能一个时间出现2次预定
        unique_together = (
            ('room', 'date', 'time_id'),
        )

    def __str__(self):
        return str(self.user) + "预定了" + str(self.room)

 

猜你喜欢

转载自www.cnblogs.com/Rivend/p/11751561.html