首页 > 解决方案 > 依赖于模型的 Django 小部件

问题描述

我对 django 很陌生,有一个问题。我得到了一个使用小部件的 ModelForm。由于我有一个名为的字段discount,如果显示的模型满足某些要求,我只想对其进行编辑,因此我使用小部件条目将其设为只读:

class Meta: widgets = {'discount': forms.TextInput(attrs={'readonly': True})}

现在我想让再次写入该字段成为可能,前提是模型(此处称为订单)的字段类型设置为整数值 0。

我试图在 html 模板中这样做,但失败了。所以我的下一个想法是让小部件以某种方式依赖于它显示的模型,所以有点伪代码:

class Meta: widgets = {'discount': forms.TextInput(attrs={'readonly': currentModel.type == 0})}

有没有合适的方法来做这样的事情?提前致谢

标签: djangodjango-modelsdjango-formsdjango-templatesdjango-widget

解决方案


除非您在创建表单时定义模型实例,否则您将拥有通用模型定义,而不是模型实例。看起来您可能希望在用户交互后更改表单行为,为此您必须使用 javascript。


推荐阅读