代码之家  ›  专栏  ›  技术社区  ›  aalberti333

Django-Rest框架中模型的动态场

  •  1
  • aalberti333  · 技术社区  · 7 年前

    (使用Django 2.0、Python 3.6和Django Rest Framework 3.8)

    Client UserB 用户B 的可用性。 用户B 有一个字段,在 模型(以及其他字段)。

    用户B 模型如下:

    class Users(models.Model):
    
        profile = models.OneToOneField(TriUser, on_delete=models.CASCADE)
    
        trainer_certifications = models.TextField(max_length=5000, default='')
    
        trainer_bio = models.TextField(max_length=5000, default='')
    
        trainer_profile_pic = models.ImageField(upload_to="gyminfofiles/trainers/images/", null=True, blank=True)
    
        gym = models.ForeignKey(Gym, on_delete=models.CASCADE, default = '', null=True, blank=True, related_name='GymClassRelatedName')
    
        workout_types = models.ManyToManyField(WorkoutTypes,)
    
        availability = models.ManyToManyField('Availability', related_name='AvailabilityRelatedName', blank=True)
    
        trainer_bookings = models.ManyToManyField('BookAppointment', related_name='BookAppointmentRelatedName', blank=True)
    
    
        def __str__(self):
            return str(self.profile)
    

    哪里,那个 Availability 模型如下:

    class Availability(models.Model):
    
        SUNDAY = 'SUNDAY'
        MONDAY = 'MONDAY'
        TUESDAY = 'TUESDAY'
        WEDNESDAY = 'WEDNESDAY'
        THURSDAY = 'THURSDAY'
        FRIDAY = 'FRIDAY'
        SATURDAY = 'SATURDAY'
    
        AVAILABILITY_DATE_CHOICES = (
            (SUNDAY, 'Sunday'),
            (MONDAY, 'Monday'),
            (TUESDAY, 'Tuesday'),
            (WEDNESDAY, 'Wednesday'),
            (THURSDAY, 'Thursday'),
            (FRIDAY, 'Friday'),
            (SATURDAY, 'Saturday'),
        )
        availability_date = models.CharField(
            max_length = 9,
            choices=AVAILABILITY_DATE_CHOICES
        )
    
        T1200_1230_AM = '12:00 am - 12:30 am'
        T1230_100_AM = '12:30 am - 1:00 am'
        T100_130_AM = '1:00 am - 1:30 am'
        T130_200_AM = '1:30 am - 2:00 am'
        T200_230_AM = '2:00 am - 2:30 am'
        T230_300_AM = '2:30 am - 3:00 am'
    
        AVAILABILITY_TIME_CHOICES = (
            (T1200_1230_AM, '12:00 am - 12:30 am'),
            (T1230_100_AM, '12:30 am - 1:00 am'),
            (T100_130_AM, '1:00 am - 1:30 am'),
            (T130_200_AM, '1:30 am - 2:00 am'),
            (T200_230_AM, '2:00 am - 2:30 am'),
            (T230_300_AM, '2:30 am - 3:00 am'),
        )
        availability_time = models.CharField(
            max_length=18,
            choices=AVAILABILITY_TIME_CHOICES
        )
    
    
        def __str__(self):
            return str((self.availability_date, self.availability_time))
    

    尝试安排约会时,会将其定向到具有以下结构的模型:

    class BookAppointment(models.Model): User_to_schedule_with = models.OneToOneField(Users) AvailableUserTimes_to_choose_from = (THIS IS WHER I'M STUCK)

    在哪里 User_to_schedule_with 字段将是一个下拉列表,其中显示客户端可以安排约会的各种用户(例如:UserB、UserC、UserD等)。在客户机选择了一个用户之后,我需要这个字段 AvailableUserTimes_to_choose_from availability 模特?

    用户B 模型如下:

    非常感谢您的帮助。

    0 回复  |  直到 7 年前