Django application to add 'django-crispy-forms' layout objects for Bulma.io
Project description
django-crispy-bulma
This project is an early work in progress. You should not use this package yet, as it is poorly documented and is missing many important features. We'll remove this header when it's ready to use.
About
This is a Django
application to add django-crispy-forms
layout objects for Bulma.
It is a fork of crispy-forms-bulma by Jure Hotujec, with the intention
of adding support for Django 2.0+, as well as for components found in the bulma-extensions library.
Installation
You can install it from PyPI with pip install django-crispy-bulma
Add package settings to your project settings file
from crispy_forms_bulma.settings import *
# TODO: Find a linter-friendly way to do this
UploadField
The UploadField looks like this:
To create these with CrispyForms, you'll need both a form object and a layout object from our package. Here's an example of how to use them.
from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout
from django import forms
from django_crispy_bulma.layout import UploadField
from django_crispy_bulma.forms import ImageField, FileField
class MyForm(forms.Form):
my_image = ImageField(
label="Upload an image of your dog",
required=False
)
my_file = FileField(
label="Upload your actual dog in .dog format",
required=True
)
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper()
self.helper.layout = Layout(
UploadField("my_image"),
UploadField("my_file"),
)
A little bit of javascript is needed in order to get the filename to display after a file upload is successful.
Written in vanilla JS, this might look something like this:
window.onload = function() {
// Apply this to all upload fields
const upload_fields = document.querySelectorAll(".file");
for (let i = 0; i < upload_fields.length; i++) {
let input = upload_fields[i].querySelector(".file-input");
let filename = upload_fields[i].querySelector(".file-name");
input.onchange = function() {
filename.textContent = input.files[0].name;
}
}
};
For your convenience, we provide a script that handles this in our companion package, django-simple-bulma. We highly recommend you use these two packages together.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Hashes for django-crispy-bulma-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 73361983f5d6d055647395a75571f184bd660f8e433c19b034473a01e9e74f38 |
|
MD5 | f402be6c7e3d5c169211e9c859f563ec |
|
BLAKE2b-256 | d775fc799be3785bd30b6fafd28bd5aa08225f16dbef1376b63f3915e3b61b20 |
Hashes for django_crispy_bulma-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 84632a26e4848d0ea31ed9602b77046fa54018774ac5141c9a520a4eb830fee7 |
|
MD5 | 4fc13a40b104499735ce6a6255ce17cb |
|
BLAKE2b-256 | 02471ee75ada25e4473889b0e858bf639ca76b26022d6f368f3d27d074476771 |