跳转到主要内容

针对现有Django内置自动完成功能的调整

项目描述

django-simple-select2

这个简单的Django应用程序使用户能够对Django的内置自动完成功能进行一些调整。

安装

pip install django-simple-select2

用法

models.py

class Publication(models.Model):
    name = models.CharField(max_length=100)

    def __str__(self):
        return self.name


class Reporter(models.Model):
    full_name = models.CharField(max_length=50)
    email = models.EmailField()

    def __str__(self):
        return self.full_name


class Article(models.Model):
    headline = models.CharField(max_length=100)
    pub_date = models.DateField()
    publications = models.ManyToManyField(Publication)
    reporter = models.ForeignKey(Reporter, on_delete=models.CASCADE)

    def __str__(self):
        return self.headline

admin.py

from django.contrib import admin
from .models import Article
from simple_select2 import Select2Admin, AutoCompleteSelect2, AutoCompleteSelect2Multiple


class ArticleModelAdmin(Select2Admin, admin.ModelAdmin):
    extra = {
        'publications': AutoCompleteSelect2Multiple(url='select2-publication-list'),
        'reporter': AutoCompleteSelect2(url='select2-reporter-list')
    }


admin.site.register(Article, ArticleModelAdmin)

views.py

from simple_select2 import AutoCompleteBaseView
from .models import Reporter, Publication


class ReporterView(AutoCompleteBaseView):
    model = Reporter
    search_fields = ('full_name', 'email')


class PublicationView(AutoCompleteBaseView):
    model = Publication
    search_fields = ('name',)

#urls.py
from django.urls import path
from .views import ReporterView, PublicationView

urlpatterns = [
    path('reporter/', ReporterView.as_view(), name='select2-reporter-list'),
    path('publication/', PublicationView.as_view(), name='select2-publication-list'),
    ...
]

设置

SIMPLE_SELECT2_THEME

设置项目范围内默认的主题,该主题将由所有继承自AutoCompleteSelect2Mixin的部件使用。可以使用参数theme来覆盖每个部件。

支持的值有

  • None(或未设置)将使用主题"admin-autocomplete"。这是默认值。
  • "admin-autocomplete"使用Django Admin的主题。
  • "bootstrap4"使用Takashi Kanemoto的select2-bootstrap4-theme的捆绑副本。请注意,此主题要求您在自己的模板中某个位置引入Bootstrap 4 CSS和JavaScript资源
  • "classic"使用上游Select2的旧经典主题。与主题"admin-autocomplete"没有太大区别。
  • "default"使用Select2的默认上游主题。

SIMPLE_SELECT2_WIDTH

设置项目范围内默认的宽度,该宽度将由所有继承自AutoCompleteSelect2Mixin的部件使用。可以使用参数width来覆盖每个部件。

有关支持的值,请参阅Select2参数width的官方文档。默认情况下,django-simple-select2不对Select2强制执行任何宽度。

演示

您在这里可以找到一个简单的演示应用程序,simple-select2-demo

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分发

django-simple-select2-0.2.0.tar.gz (5.3 kB 查看散列值)

上传时间

构建分发

django_simple_select2-0.2.0-py3-none-any.whl (7.1 kB 查看散列值)

上传时间 Python 3

由以下支持