Как динамически изменить начальные значения формы на основе значения, выбранного пользователем? Джанго - PullRequest
0 голосов
/ 21 апреля 2019

Я бы хотел, чтобы определенные поля в моей форме заполнялись на основе выбранного значения в одном из полей.Я нашел примеры по генерации динамической формы, но не по этому ...

Вот мой models.py

class Module(models.Model):
    subject = models.CharField(max_length=200, default="")

class Class(models.Model):
    module = models.ForeignKey(Module, on_delete=models.CASCADE, default="")
    duration = models.CharField(max_length=200, default="")
    description = models.CharField(max_length=200, default="")

и мой forms.py

class inputClassInformation(forms.Form):
    module = forms.ModelChoiceField(queryset=Module.objects.all())
    duration = forms.CharField(disabled=True, required=False)
    description = forms.CharField()

Чтобы повторить, желаемый результат будет:
На основе выбранного пользователем модуля продолжительность автоматически извлекается из записи в базе данных и отображается в соответствующем поле формы.

Я не смог найти пример онлайн / в документации по этому вопросу, поэтому помощь приветствуется, спасибо!

1 Ответ

1 голос
/ 21 апреля 2019

Вы можете поместить выбор модуля в его собственную форму отправки и при отправке передать модуль вашему представлению в views.py, затем получить начальные значения для продолжительности и описания и передать начальные значения в вашу форму, как описано здесь .Это решение будет работать без JavaScript, но нуждается в кнопке отправки рядом с раскрывающимся списком вашего модуля.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...