如何根据TypeChoiceField中的选择显示值

时间:2015-03-12 11:51:28

标签: python django django-forms

回到另一个Django问题。我的应用程序似乎看起来不错,但现在是时候添加一些功能了。因为我对Django来说是全新的,所以我似乎无法根据用户的选择想出如何在某些字段中显示值。来自Delphi,似乎很难理解这些查找值是怎样的'在Django中处理。所以任何帮助都会受到欢迎。

假设我有一个显示下拉列表的表单,允许用户从可用单位的下拉列表中选择一个单位。一旦用户从该列表中选择了一个单元,我想在表单的其他一些字段中显示该单元的类型/名称/描述和图像。

目前,我已经能够完美填写列表,但似乎无法弄清楚如何从列表中选择项目:

class BaseUnitInputForm(forms.Form):
Name = forms.CharField(
    label="Name",
    max_length=100,
    required=True
)

ParentUnitId = forms.TypedChoiceField(
    label="Parent Unit",
    initial = 0,
    required = True,
)

UnitId = forms.TypedChoiceField(
    label="Indoor Unit",
    choices = [],
    initial = 0,
    required = True,
)

UnitType = forms.CharField(
    label="Indoor Unit Type",
    max_length=100,
    required=True
)

....

def __init__(self, *args, **kwargs):
    super (BaseUnitInputForm, self).__init__(*args, **kwargs)

    choice_list = []

    initial = kwargs['initial']       
    parentunitid  = initial['parentunitid']

    # Available units are fetched from a REST server and filtered on the selected
    # Parent Unit ID
    client = RESTClient()
    availableunits = client.get_availableunits(parentunit.parentunitid)

    for availableunit in availableunits:
        choice_list.append((availableunit.Id, "{0} - {1}".format( availableunit.Series, availableunit.Description ) ) )

    self.fields['UnitId'].choices = choice_list
    self.fields['UnitId'].initial = UnitId

    self.helper = FormHelper()

    ...

所以......当用户从UnitId下拉列表中选择一个值时,我想在表单上的另一个ReadOnly字段中显示相应的Series / Description。我有什么想法可以做到这一点?

提前多多感谢。

1 个答案:

答案 0 :(得分:0)

你需要客户端代码(javascript)来实现这一点 - 这是一个Web应用程序,所以一旦服务器将HTTP响应返回给客户端,事情就结束了(来自服务器的POV)。 / p>