将DJANGO管理界面的filter_horizontal移到前面来复用

参考URL:

http://www.hoboes.com/Mimsy/hacks/replicating-djangos-admin/reusing-djangos-filter_horizontal/

http://www.hoboes.com/Mimsy/hacks/replicating-djangos-admin/

我要想的东东,没有上面讲的那么复杂,就是想在用户操作M2M时,可以从容的选择不同的选项,而不用担心哪些东东被漏了。

按上面的文档,我的实现如下:

一,新建一个模板文档,将相关的DJANGO管理里的CSS,JS移出来备用。

popupplus.html(注意初始化的参数,0为横向,1为纵向)

{% load staticfiles %}
<link rel="stylesheet" href={% static "admin/css/widgets.css"%} />
<script src={% static "/admin/jsi18n/"%}></script>
<script src={% static "admin/js/core.js"%}></script>
<script src={% static "admin/js/SelectBox.js"%}></script>
<script src={% static "admin/js/SelectFilter2.js"%}></script>

{% if multiple %}
<script type="text/javascript">
addEvent(window, "load", function(e) {
SelectFilter.init("id_{{ field }}", "{{ field }}", 0, "/static/admin/");
});
</script>
{% endif %}

二,重写forms.py里的代码,让其继承forms.SelectMultiple来改写:

class MultipleSelectWithPop(forms.SelectMultiple):
    def render(self, name, *args, **kwargs):
        html = super(MultipleSelectWithPop, self).render(name, *args, **kwargs)
        popupplus = render_to_string("rightmanage/popupplus.html", {'field': name, 'multiple': True})
        return html+popupplus

三,让相关字段继承这个类,来实现横向选择。

class RightManageFATForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(RightManageFATForm, self).__init__(*args, **kwargs)

    fat_users = forms.ModelMultipleChoiceField(
        User.objects,
        widget=MultipleSelectWithPop,
    )

    name = forms.CharField(
        required=False,
        error_messages={'required': "不能为空"},
        label=u"项目名称",
        widget=forms.TextInput(
            attrs={
                'class': 'uk-width-1-4',
                'disabled': 'true',
            }
        ),
    )

    class Meta:
        model = Site
        fields = ['name', 'fat_users', ]
        exclude = ['app_name', 'description', 'app_name', 'manage_user', 'uat_users', 'prd_users', 'valid_users', ]

四,然后,,好像就抽定啦。。。:)好像字体没调好,暂时不管。。。

时间: 2024-11-02 05:47:54

将DJANGO管理界面的filter_horizontal移到前面来复用的相关文章

iOS开发UI篇—在UITableview的应用中使用动态单元格来完成app应用程序管理界面的搭建

一.实现效果 说明:该示例在storyboard中使用动态单元格来完成. 二.实现 1.项目文件结构和plist文件 2.实现过程以及代码 在tableview的属性选择器中选择动态单元格. 说明:在storyboard中直接使用其自带的动态单元格完成tableviewcell的定义,并创建了一个管理该cell的类,进行了连线. 实现代码: 数据模型部分: YYappInfo.h文件 1 // 2 // YYappInfo.h 3 // 01-使用动态单元格来完成app应用程序管理界面的搭建 4

jmx4perl 1.00发布 访问Java JEE服务器管理界面的方法

Jmx4Perl是一款提供了基于JMX的访问Java JEE服务器管理界面的另一种方法.它是一个基于代理的途径,小型Web应用程序部署在http://www.aliyun.com/zixun/aggregation/15818.html">应用服务器上,提供了基于HTTP/JSON的访问应用服务器已注册的 JMX MBeans .从少量的Perl模块即可建立,它可以在自己的程序中无缝地集成.它还包含Nagios插件,check_jmx4perl,远程JMX查询和操作的jmx4perl命令行

iOmega如何修改管理界面的显示语言?

Iomega管理界面的显示语言可以在浏览器中设置,以IE浏览器为例. 设置IE浏览器里的"Internet选项":   选择语言: 选择中文语言为中文并上移最上面,优先级最高,选择确定.

Iomega如何通过设备本地连接的显示器修改管理界面的显示语言?

Iomega管理界面的显示语言也可以在本地显示器中设置.请注意,只有iomega设备硬件上有VGA等视频接口才能连接显示器进行设置.   在设备上连接好显示器.键盘和鼠标,打开设备电源,打开显示器,在全部功能里找到并打开"language"功能:   选择简体中文并应用.

Win7系统打开服务管理界面的几种方法总结

  Win7服务管理包含了计算机操作系统和应用程序提供的所有服务,但是这么多服务并非总是用户所需的.比如打印机服务,如果没有接入打印机设备,它的启动就没有了意义. 因此,我们可以通过禁用那些用不到的服务来加快开机启动,优化系统性能.第一步,先看看如何进入服务界面吧.随缘小编搜集了3种方法打开服务界面,有兴趣可以来看看哦! 打开服务界面方法一: 1.在键盘上按"WIN+R"快捷键,打开运行界面,输入"services.msc"指令,按"确定",如图

jmx4perl 1.05发布 Java JEE服务器管理界面的访问工具

Jmx4Perl 是一款为访问Java JEE服务器管理界面提供了另一种方法的工具,它基于JMX.它是一个基于代理的途径,小型Web应用程序部署在http://www.aliyun.com/zixun/aggregation/15818.html">应用服务器上,提供了基于HTTP/JSON的访问应用服务器已注册的 JMX MBeans .从少量的Perl模块即可建立,它可以在自己的程序中无缝地集成.它还包含Nagios插件,check_jmx4perl,远程JMX查询和操作的jmx4pe

jmx4perl 1.03发布 Java JEE服务器管理界面的访问工具

Jmx4Perl是一款为访问Java JEE服务器管理界面提供了另一种方法的工具,它基于JMX.它是一个基于代理的途径,小型Web应用程序部署在http://www.aliyun.com/zixun/aggregation/15818.html">应用服务器上,提供了基于HTTP/JSON的访问应用服务器已注册的 JMX MBeans .从少量的Perl模块即可建立,它可以在自己的程序中无缝地集成.它还包含Nagios插件,check_jmx4perl,远程JMX查询和操作的jmx4per

你想找的Python资料这里全都有!没有你找不到!史上最全资料合集

GitHub 上有一个 Awesome - XXX 系列的资源整理,资源非常丰富,涉及面非常广.awesome-python 是 vinta 发起维护的 Python 资源列表,内容包括:Web框架.网络爬虫.网络内容提取.模板引擎.数据库.数据可视化.图片处理.文本处理.自然语言处理.机器学习.日志.代码分析等.在给大家分享之前呢,小编推荐一下一个挺不错的交流宝地,里面都是一群热爱并在学习Python的小伙伴们,大几千了吧,各种各样的人群都有,特别喜欢看到这种大家一起交流解决难题的氛围,群资料

django从0到1搭建网站

曾经有人说我前端很水,那么在这一系列文章中我打算把前后端融合在一起来做一次网站的全面重构,希望可以把刚刚入行的同学带上正途   请尊重原创,转载请注明来源网站www.shareditor.com以及原始链接地址 聊聊工程 如今,数据科学家已经逐渐取代现在的"软件工程师"成为IT行业的主流职业,和"全民都在聊人工智能"一样,可能全部IT工作者都要天天研究算法.琢磨模型.跑数据.调参数.跑数据.调参数,那些被淘汰的"软件工程师"会真的成为民工一样的行