Настройте мою форму (форма отпуска) нужно автоматизировать несколько вещей
Итак, я настроил свое приложение для управления отпуском. Я хотел бы узнать, есть ли способ автоматизировать дни. Например, если больничный==5 дней, когда пользователь выбирает больничный, система автоматически сообщает ему, сколько дней у него есть. Они могут взять все дни, меньше, но не больше назначенных дней. И когда пользователь выбирает, когда он хочет начать свой отпуск, тогда дата окончания автоматически заполняется, исключая выходные дни. Спасибо, я знаю, что это много, но я буду рад любой помощи.
SICK = 'sick'
CASUAL = 'casual'
EMERGENCY = 'emergency'
STUDY = 'study'
MATERNITY = 'maternity'
LEAVE_TYPE = (
(SICK, 'Sick Leave'),
(CASUAL, 'Casual Leave'),
(EMERGENCY, 'Emergency Leave'),
(STUDY, 'Study Leave'),
(MATERNITY, 'Maternity Leave'),
)
class Leave(models.Model):
user = models.ForeignKey(User,on_delete=models.CASCADE,default=1)
startdate = models.DateField(verbose_name=_('Start Date'),help_text='leave start date is on ..',null=True,blank=False)
enddate = models.DateField(verbose_name=_('End Date'),help_text='coming back on ...',null=True,blank=False)
leavetype = models.CharField(choices=LEAVE_TYPE,max_length=25,default=SICK,null=True,blank=False)
reason = models.CharField(verbose_name=_('Reason for Leave'),max_length=255,help_text='add additional information for leave',null=True,blank=True)
defaultdays = models.PositiveIntegerField(verbose_name=_('Leave days per year counter'),default=DAYS,null=True,blank=True)
status = models.CharField(max_length=12,default='pending') #pending,approved,rejected,cancelled
is_approved = models.BooleanField(default=False) #hide
updated = models.DateTimeField(auto_now=True, auto_now_add=False)
created = models.DateTimeField(auto_now=False, auto_now_add=True)
В вашем вопросе отсутствует некоторая информация, но я предполагаю, что вы отображаете форму, в которой пользователь выбирает тип отпуска из поля выбора. После того, как пользователь сделает выбор, если он выберет больничный, вы хотите обновить поле в форме, чтобы показать количество доступных больничных дней. Правильно ли это звучит? Если да, то вы можете разместить слушатель jquery, например
$("#id_leavetype").change(function () { ...
(в html-файле) на поле выбора и используйте, например, AJAX, чтобы передать id оставленного выбора в функцию в вашем views.py, которая вернет данные или строку для заполнения поля формы. Если вы еще не использовали AJAX, есть хорошее введение в него здесь . Функция будет возвращать данные в html, используя, например,
return JsonResponse(data)
о которых вы можете прочитать в документации django здесь.
Если я упустил суть вашего вопроса, добавьте немного информации о форме, шаблоне, представлении и так далее.