我在models.py中有两个字段
password_protected = models.BooleanField(default=False)
password = models.CharField(max_length=50)
我想以这样的方式编写admin.py:
- 如果password_protected为True:则应启用密码字段。 - 如果password_protected为False:则应禁用密码字段。
答案 0 :(得分:1)
您可以尝试@luc建议的内容,但您也可以尝试将小部件添加到password_protected
字段:
password = models.CharField(default=False, widget=forms.TextInput())
- 并调整其属性:
form = MyForm(request.POST)
if form.is_valid():
# do some nice stuff here
else:
if form['password_protected'].data:
form.fields['password_protected'].widget.attrs['disabled'] = 'disabled'
请注意,为widget
字段指定password
应该是不必要的,因为字段具有默认小部件,但我添加它以防需要修改小部件属性。
答案 1 :(得分:0)
我认为更简单的方法是使用javascript和jquery实现此行为。可以使用jquery通过名称访问这些字段(例如$("input[name=password]");
。
然后,您可以通过将Media class添加到管理类中来将您的js文件插入管理员。
我希望它有所帮助