我的模特的目的
我的模型是一个帮助台,它包含几个字段,具体取决于询问的请求。当用户选择他的请求时,会出现有关此请求的相关字段。
我使用布尔字段和相关字段之间的关系(每个相关字段一个布尔字段)。换句话说,布尔字段的作用类似于相关字段的可见性切换。
当布尔字段为True
时,相关字段可见。否则,该字段是不可见的。
我的问题
如果用户想要更改请求,但他先前填写了先前请求的字段,则先前的字段(其中一些必须是不可见的)仍然获得用户输入的值。如果这些不可见的字段仍然具有与其默认值不同的值,则无法完成所请求的请求。
我如何避免此问题
实际上,我已经创建了一个状态表(布尔表),它对应于必须出现(或不出现)的每个字段的可见性,具体取决于所请求的请求。
因此,如果用户选择了一个请求,此时,我通过将状态表的相应布尔值分配给布尔字段来设置字段的可见性。
def change_states_of_visibility(self):
boolean_field_1 = False
boolean_field_2 = True
# Other assignation values to boolean fields
一旦设置了可见性,我就用方法设置每个字段(有关与否)的默认值。
# When the field has been hidden for some reason
def reset_to_default_value_every_fields(self)
my_field = default_value
# Other fields set to default Value
使用这种方法,我现在可以确定隐藏字段会重置为默认值,即使它们之前已被填充过。
正如我的问题所说,我想知道是否有一种通用方式或者实际上比我更好,将每个隐藏字段设置为默认值。