Как в Django Forms сделать поле enabled или disabled в зависимости от boolean значения другого поля?
Есть класс Comment
. Хочу сделать форму, в которой поле date_next_call
будет активное, если need_call
будет True
и не активное, если False
.
Нужно переопределить метод в CreateView
, или это делается в html-шаблоне?
CheckboxInput
автоматически связывается со значением boolean
поля need_call
, если например initial
я ставлю False
, то без галочки значение будет False
, а с галочкой True
?
Много чего перерыл, прошу прощения, если вопрос окажется глупым.
Буду признателен за любую помощь.
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ['text', 'need_call', 'date_next_call']
text = forms.CharField(label='Комментарий', widget=forms.Textarea(attrs={'class': 'form-control', 'placeholder': 'Введите текст', 'style': 'width: 500px'}))
need_call = forms.BooleanField(initial=False, label='Назначить дату следующего звонка?', widget=forms.CheckboxInput(attrs={'class': 'checkboxInvoice', }))
date_next_call = forms.DateTimeField(disabled=False, widget=forms.SelectDateWidget)
class Comment(models.Model):
text = models.TextField('Комментарий', max_length=50, help_text="Введите название")
date_create = models.DateTimeField('Дата создания', auto_now=True) # не нужно добавлять в форму
date_update = models.DateTimeField('Дата обновления', auto_now_add=True) # не нужно добавлять в форму
need_call = models.BooleanField('Поставить дату след звонка?', default=False)
date_next_call = models.DateTimeField('Дата след. звонка', blank=True)
company = ForeignKey('Company', on_delete=models.CASCADE)
class Meta:
ordering = ["date_update"]
verbose_name = "Комментарий"
verbose_name_plural = "Комментарии"
def __str__(self):
return self.text
Должно быть как на скриншоте.
Источник: Stack Overflow на русском