Django Selectize
django-selectize is a Django app based on Selectize.js that help you to create Select and Multiselect widgets in Django forms.
Installation
Install django-selectize:
pip install django-selectize
Add django-selectize to your INSTALLED_APPS in your project settings.
INSTALLED_APPS = [
# other django apps...
'django_selectize',
]
Quick Start
Here is a quick example to get you started:
We have the following model:
# models.py
from django.conf import settings
from django.db import models
class Book(models.Model):
author = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
co_authors = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='co_authored_by')
Next, we create a model form with custom Selectize widgets.
# forms.py
from django import forms
from django_selectize import forms as s2forms
from . import models
class AuthorWidget(s2forms.SelectizeWidget):
search_fields = [
"username__icontains",
"email__icontains",
]
class CoAuthorsWidget(s2forms.SelectizeMultipleWidget):
search_fields = [
"username__icontains",
"email__icontains",
]
class BookForm(forms.ModelForm):
class Meta:
model = models.Book
fields = "__all__"
widgets = {
"author": AuthorWidget,
"co_authors": CoAuthorsWidget,
}
A simple class based view will do, to render your form:
# views.py
from django.views import generic
from . import forms, models
class BookCreateView(generic.CreateView):
model = models.Book
form_class = forms.BookForm
success_url = "/"
Make sure to add the view to your urls.py:
# urls.py
from django.urls import include, path
from . import views
urlpatterns = [
# ... other patterns
path("", views.BookCreateView.as_view(), name="book-create"),
]
Finally, we need a little template, myapp/templates/myapp/book_form.html
<!DOCTYPE html>
<html lang="en">
<head>
<title>Create Book</title>
{{ form.media.css }}
<style>
input, select {width: 100%}
</style>
</head>
<body>
<h1>Create a new Book</h1>
<form method="POST">
{% csrf_token %}
{{ form.as_p }}
<input type="submit">
</form>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
{{ form.media.js }}
</body>
</html>
Metadata
Release files for django-selectize 2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| django-selectize-2.0.tar.gz | 123.9 kB | Without provenance | Details for django-selectize-2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| django_selectize-2.0-py3-none-any.whl | Python 3 | none | any | Details for django_selectize-2.0-py3-none-any.whl |
Total release size: 247.7 kB
Release files / django-selectize-2.0.tar.gz
| Download URL | django-selectize-2.0.tar.gz |
|---|---|
| Size | 123.9 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5a7c43fa2f66fb8c3826f10c3684c57ce07d5bd747d330393d947c95a3710077
|
|
BLAKE2b-256 checksum How to use checksums |
e92b878ffd9269599bab113c5ad6416b04a1808a1e6c8c4d041c371cb4075dd8
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.8.10
|
Release files / django_selectize-2.0-py3-none-any.whl
| Download URL | django_selectize-2.0-py3-none-any.whl |
|---|---|
| Size | 123.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cb50dca21db368e2484ffd1b96dc588fd8efe129fcb66a7572f9e4f9ef3db7a5
|
|
BLAKE2b-256 checksum How to use checksums |
6fee7a80cd3fecc4417ddcd1a99c815f2bdd14b96e68f92de16e1da89f581cd2
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.8.10
|
Security for django-selectize 2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.