如何自定义django admin?

时间:2010-11-25 07:43:40

标签: python django

我在models.py中有两个字段

password_protected = models.BooleanField(default=False)
password = models.CharField(max_length=50)

我想以这样的方式编写admin.py:

- 如果password_protected为True:则应启用密码字段。 - 如果password_protected为False:则应禁用密码字段。

2 个答案:

答案 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文件插入管理员。

我希望它有所帮助