django admin show field仅当checkbox为false时 [英] django admin show field only if checkbox is false

查看:292
本文介绍了django admin show field仅当checkbox为false时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

models.py

models.py

class Menu(models.Model):

    ...
    has_submenu=models.BooleanField(default=1)
    page=models.ForeignKey(Page,null=True)

我想要django管理员显示页面属性只有当has_submenu复选框是false(所以django-admin必须为我写一些javascript :))

I want django admin shows the page attribute only if has_submenu checkbox is false (So django-admin must write some javascript for me :) )

也许我必须扩展 render_change_form 方法

任何建议?

推荐答案

我的答案:

class MenuAdmin(admin.ModelAdmin):
...
    class Media:
        js = ('/static/admin/js/hide_attribute.js',)

hide_attribute.js

hide_attribute.js

hide_page=false;
django.jQuery(document).ready(function(){
    if (django.jQuery('#id_has_submenu').is(':checked')) {
        django.jQuery(".page").hide();
        hide_page=true;
    }else
    {
        django.jQuery(".page").show();
        hide_page=false;

    }
    django.jQuery("#id_has_submenu").click(function(){
        hide_page=!hide_page;
        if(hide_page)
        {
            django.jQuery(".page").hide();
        }else
        {
            django.jQuery(".page").show();
        }
    })
})

认为这是一个简单的答案

I think this is a simple answer

这篇关于django admin show field仅当checkbox为false时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆