(Django 2.0, Python 3.6, Django Rest Framework 3.8)
I'm trying to fill the calendarydays
field in the model below:
Model
class Bookings(models.Model):
booked_trainer = models.ForeignKey(TrainerProfile, on_delete=models.CASCADE)
booked_client = models.ForeignKey(ClientProfile, on_delete=models.CASCADE)
trainer_availability_only = models.ForeignKey(Availability, on_delete=models.CASCADE)
calendarydays = models.CharField(max_length=300, blank=True, null=True)
PENDING = 'PENDING'
CONFIRMED = 'CONFIRMED'
CANCELED = 'CANCELED'
STATUS_CHOICES = (
(PENDING, 'Pending'),
(CONFIRMED, 'Confirmed'),
(CANCELED, 'Canceled')
)
booked_status = models.CharField(
max_length = 9,
choices = STATUS_CHOICES,
default = 'Pending'
)
def __str__(self):
return str(self.trainer_availability_only)
Now, I have a function that takes values from trainer_availability_only
and converts those values to a list of datetime strings, the returned output would look like this:
{'calendarydays': ['2018-07-23 01:00:00', '2018-07-23 02:00:00', '2018-07-23 03:00:00', '2018-07-30 01:00:00', '2018-07-30 02:00:00', '2018-07-30 03:00:00', '2018-08-06 01:00:00', '2018-08-06 02:00:00', '2018-08-06 03:00:00', '2018-08-13 01:00:00', '2018-08-13 02:00:00', '2018-08-13 03:00:00', '2018-08-20 01:00:00', '2018-08-20 02:00:00', '2018-08-20 03:00:00']}
Problem
How can I fill the calendarydays
field with the function output for a user to select from a dropdown, and where should I implement this logic (in my view or the serializer)? My main point of confusion is that, because my function depends on data from trainer_availability_only
, I don't want to create a separate model/table for this information (as that would seem too repetitive). I also don't fully understand where in my serializers or views I can implement some sort of dropdown for a User to choose a single calendarydays
value for (like I would be able to for a ForeignKey
or OneToOneField
for example).
Details for the other models aren't really relevant to the question, except trainer_availability_only
, which basically gives the user a dropdown selection that would look like this:
('Monday','12:00 am - 1:00 am')
('Wednesday','4:00 pm - 5:00 pm')
etc.
Any help is greatly appreciated.
from Django Rest Framework - passing Model data through a function, then posting output in a separate field in the same model
No comments:
Post a Comment