gpt4 book ai didi

python - Django 根据另一个字段值禁用字段

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:07 25 4
gpt4 key购买 nike

我是 django 的新手,正在尝试解决问题。我有这个模型:

class MyModel(models.Model):
value = models.CharField(max_length=50, choises=...)
custom_value = models.CharField(max_length=50, blank=True)

而且我需要启用 custom_value 字段以仅在值字段的值为“CUSTOM”时进行编辑。

最佳答案

我假设当您说“启用编辑”时,您指的是表单域。我还假设在加载表单时数据已经保存在模型中。

在那种情况下,这应该在该模型的相应表单上完成。您需要将该表单字段初始化为禁用,然后在表单加载时启用它。

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 表单的方式。

关于python - Django 根据另一个字段值禁用字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40916456/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com