我是django的新手,正在尝试解决问题。我有以下模型:
class MyModel(models.Model):
value = models.CharField(max_length=50, choises=...)
custom_value = models.CharField(max_length=50, blank=True)
而且,仅当value字段的值为“ CUSTOM”时,我才需要启用custom_value字段进行编辑。
我假设当您说“启用编辑”时,是指表单字段。我还假设在加载表单时数据已经保存在模型中。
在这种情况下,应在该模型的相应表格上完成此操作。您需要初始化要禁用的表单字段,然后在表单加载时启用它。
class MyForm(forms.ModelForm):
class Meta:
model = MyModel
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
custom_value = self.fields.get('custom_value')
if custom_value and custom_value.widget.attrs['value'] == 'CUSTOM':
self.fields['value'].widget.attrs['disabled'] = 'false'
我知道您的代码只是一个示例,但是将其value
用作类属性名称会造成混淆。
如果希望以一种形式动态地执行此操作,例如让用户选择一个选项,然后看到另一个选项被启用而无需刷新浏览器,则必须使用Javascript来完成。这就是仅使用Django表单的方式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句