首页 > 其他分享 >django之ModelForm配合Select2之用法

django之ModelForm配合Select2之用法

时间:2022-11-27 13:22:23浏览次数:68  
标签:__ control form js Select2 attrs django ModelForm class

django在开发时有很强大的功能,但是有一些功能还是不够的,django给我们强大的自增强功能。

Select2

https://select2.org

开发时可以直接使用CND:

<link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/select2.min.css" rel="stylesheet" />
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/select2.min.js"></script>

记住上的这些必须要放在html页面的头部,并且把jquery.js也放入头部。

ModelForm在渲染页面时优先使用系统默认的django-select2,在页面中显示如下:

class UserInfoModelForm(forms.ModelForm):

    class Meta:
        model = UserInfo
        fields = "__all__"
        exclude = None
        widgets = {
            "depart": wid.Select(attrs={'class': 'js-select form-control',"multiple":"multiple"}),
            "gender": wid.Select(attrs={'class': 'form-control'}),
            "create_time":wid.DateTimeInput(attrs={'class': 'form-control'})

        }

 

 

看看

 

 

 可以看出这样渲染出来的并不是我们想要的select2的样式。因此需要重写这个select的属性。

class UserInfoModelForm(forms.ModelForm):

    class Meta:
        model = UserInfo
        fields = "__all__"
        exclude = None
        widgets = {
            # "depart": wid.Select(attrs={'class': 'js-select form-control',"multiple":"multiple"}),
            "gender": wid.Select(attrs={'class': 'form-control'}),
            "create_time":wid.DateTimeInput(attrs={'class': 'form-control'})

        }

    def __init__(self, *args, **kwargs):
        super(UserInfoModelForm, self).__init__(*args, **kwargs)
        self.fields["depart"].widget.attrs.update({'class': 'js-select form-control',"multiple":"multiple"})

此时渲染出来的效果的就我们想要的select2的样式了,并且功能也很强大。

 

记住在最后要加入script:

    <script>
        {#$(".js-select").select2()#}
        $(document).ready(function () {
            $(".js-select").select2()
        });</script>

 

 

标签:__,control,form,js,Select2,attrs,django,ModelForm,class
From: https://www.cnblogs.com/lessonlearn/p/16929512.html

相关文章

  • 解决Django的【LookupError: No installed app with label ‘admin‘】
    其实这个问题比较好解决:1、首先debugmain函数,定位你的问题,我这边的问题是报这个错误;'ErrorloadingMySQLdbmodule.\n''Didyouinstallmysqlclient?'  2、针对......
  • Django Rest Framework
    1安装DRF官网DRF仓库地址pipinstalldjangorestframework#settings.pyINSTALLED_APPS=[...'rest_framework',]2视图视图说明View基础......
  • django模型的字段类型简介
    【django基础】django模型的字段类型简介说实在的,每一个框架基本都会用一套orm,只是各有各的标准,每次用起来都挺费劲的,所以还是要单独整理下AutoField—自增列=int......
  • Django 迁移文件报错django.db.migrations.exceptions.InconsistentMigrationHistory;O
    Django项目在把Git上项目拉到本地后,运行完python manage.py makemigrations后,再运行python manage.py migrate,出现报错:django.db.migrations.exceptions.Inconsis......
  • Django视图
    目录介绍请求对象获取请求数据获取请求体数据获取请求头响应对象JsonResponserender返回一个模版redirect重定向介绍视图基本就是两部分一个是请求对象request,reques......
  • Daphne 部署 Django ASGI 的常见错误与解决方法
    问题1django.core.exceptions.AppRegistryNotReady:Appsaren'tloadedyet.处理方法:修改asgi.py,增加django.setup()注意:django.setup()要置顶,不能在底部,否则使用da......
  • 4 django_Adimn账户
    1.创建管理员账号退出服务器输入命令pythonmanage.pycreatesuperuser启动服务器pythonmanage.pyrunserver输入网址:http://127.0.0.1:8000/admin/logi......
  • Django 创建子应用、目录结构、路由分发
    目录创建项目目录结构路由分发路由分组创建项目创建项目diango-adminstartprojectmy_project/项目名称创建子应用python3manage.pystartappapp01/子应用名称......
  • Django ORM模型一对一、一对多、多对多的操作详解
    一、快速创建项目1、创建项目>>django-adminstartprojecttest03_20181211>>pythonmanage.pystartappapp1 2、配置文件settings.py#1、数据库:(settings.p......
  • 生信踩坑记01-->配置Django项目,也有抓狂的瞬间
    今天准备练习一个软件croton:该软件的下载,安装说明书将的很清楚,但是自己在这一过程中遇到了一些问题,搞了很久才解决,是有此记:问题1:软件获取之后,是通过.yml文件进行相关软件......