针对现有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.tar.gz的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | d5473b41776dc178588631aa92bf7638256221424149ae2e855a02f64e3e4e3f |
|
MD5 | aa8ffe5fda3aaa2c5b9b5e345c03f3ed |
|
BLAKE2b-256 | 9e4c57b1ec6159221d86cd99e7c84a6da2eaa00b636817fb889428f95c369f47 |
关闭
django_simple_select2-0.2.0-py3-none-any.whl的散列值
算法 | 散列摘要 | |
---|---|---|
SHA256 | 7f92c3dfb44a95955de14934ef6ee56d2230ffa4eff3e11dc84ba53d2d02a600 |
|
MD5 | 80771aea51faaf8939a5ec0fe25eee34 |
|
BLAKE2b-256 | 11a6b36f77e0f542d26c56da6ba1ddab1ef6c1dbc02eba2d509ffcf9d745f704 |