我应该怎么做django

时间:2017-06-09 12:04:26

标签: python django

我正在考虑制作一个宿舍分配Web应用程序。它有模特,学生,房间,宿舍。我想要的是创建一个每年后分配学生的功能。为此,我认为在学生看来,每个学生在完成四年的学业后可以在完成学位后点击腾出的宿舍,对于其他人,我想创建一些分配它们的东西, 现在有一定的限制,有本科学历,学位期限为4年,每年可以使用不同类型的房间,第一年三重分享,第二年和第三年双重分享和四年级单人间。此外,宿舍有博士学位。学生也是如此,但他们的逗留期限没有定义。

所以,我想的是第一年应该通过上传CSV文件来分配,我已经做了那个部分,所以下一部分是根据他们的喜好分配后续年份,那么我怎么能做这样的事情呢?在Django允许他们根据自己的喜好制作它,我想每个学生都会获得一个独特的令牌,而在填写一个学生可以为一个房间做的房间时,需要输入该令牌。这是正确的方式还是我应该做的其他事情。我是新手,请建议我这样做的好方法。

models.py

class Student(models.Model):
    name = models.CharField(max_length = 40,help_text = "Name of the student")
    entry_number = models.CharField(max_length = 11,help_text = "Entry Number of a student")
    hostel_name = models.ForeignKey('Hostel', on_delete = models.SET_NULL,null = True)
    room = models.ForeignKey('Room',on_delete = models.SET_NULL,null = True)
    CHOICES = (
        ('m','Male'),
        ('f','Female'),
        ('e','Engaged'),
    )
    gender = models.CharField(max_length=1,choices=CHOICES)
    def __str__(self):
       return '%s, %s' % (self.name,self.entry_number)
    def get_absolute_url(self):
        return reverse('student-detail',args=[str(self.id)])
    class Meta:
        verbose_name="Student Record"


class Hostel(models.Model):
    name= models.CharField(max_length= 15)
    locality= models.URLField(max_length= 200, blank= True, default='',help_text='Google maps URL of the hostel')
    total_rooms= models.PositiveSmallIntegerField(null=True, blank =True)
    CHOICES = (
        ('m', 'Male'),
        ('f', 'Female'),
        ('e', 'Engaged'),
    )
    gender = models.CharField(max_length=1, choices=CHOICES, verbose_name=_('Type of Hostel'), help_text='Either Boys/Girls or Married students Hostel')
    def __str__(self):
        return  self.name
    def get_absolute_url(self):
        return reverse('hostel-detail',args=[str(self.id)])
    class Meta:
        verbose_name="Hostel Record"


class Room(models.Model):
    hostel= models.ForeignKey(Hostel, on_delete=models.CASCADE)
    name= models.CharField(max_length = 5)
    floor= models.CharField(max_length = 1, blank=True)
    wing= models.CharField(max_length = 1, blank=True)
    comment= models.CharField(max_length = 100,blank=True, default = "comment here")
    room_capacity = models.PositiveSmallIntegerField(validators=[MaxValueValidator(3),])
    room_accomodation= models.PositiveSmallIntegerField()

    def __str__(self):
        return self.name
    def get_absolute_url(self):
        return reverse('room-detail',args=[str(self.id)])
    class Meta:
        verbose_name="Room Record"

0 个答案:

没有答案
相关问题