如何根据用户选择的值动态更改初始表单值? Django的

时间:2019-04-21 08:12:50

标签: html django python-3.x

我希望根据其中一个字段中的选定值来填充表单中的某些字段。我找到了有关动态表单生成的示例,但没有找到有关此示例。

这是我的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 个答案:

答案 0 :(得分:1)

您可以将模块选择内容放入其自己的提交表单中,然后在将模块传递给views.py中的视图时提交,然后获取持续时间和描述的初始值,并按照{{3 }}。此解决方案可以在没有javascript的情况下工作,但是需要在模块下拉菜单旁边添加一个提交按钮。