Django app to implement Bootstrap nested modals
Project description
Add to installed apps in settings
'bootstrap_modals',
Add to template
<script src="{% static 'django_modals/js/modals.js' %}"></script>
<link rel="stylesheet" type="text/css" href="{% static 'django_modals/css/modals.css' %}"/>
Sample form and view
from crispy_forms.layout import Layout, Field
from django_modals.forms import ModelCrispyForm
from django_modals.view_mixins import BootstrapModelModalMixin
from .models import User
class UserForm(ModelCrispyForm):
class Meta:
model = User
fields = ['username']
modal_title = ['Add user', 'Edit User']
def post_init(self, *args, **kwargs):
self.helper.layout = Layout(
Field('username'),
self.submit_button(css_class="btn-success"),
self.cancel_button())
class ModalUserForm(BootstrapModelModalMixin):
form_class = UserForm
Add modal URLS
path('modal/user/<slug:slug>/', modals.ModalUserForm.as_view(), name='usermodal')
Generate javascript link in python
href_modal('usermodal', 'client-{}'.format(self.kwargs['pk']))
onclick_modal('usermodal', 'client-{}'.format(self.kwargs['pk']))
Adding different buttons
self.button('Delete', [{'function': 'post_modal', 'button': 'delete'}], "btn-danger")
in view the function button_buttonname will be called
def button_delete(self, request, *args, **kwargs):
The kwargs from the url are detemined in bootstrap_modals.views in split_slug
if only one item split by -
'pk': item
else
'initial { even : odd }'
WIDGETS
Select2
In form
self.fields['field_name'].widget = Select2()`
AJAX
self.fields['field_name'].widget = Select2(attrs={'ajax': True})
Then in view
def select2_field_name(self, request, *args, **kwargs):
try:
results = list(EventSubType.objects.filter(event_type_id=request.POST['field_name'])
.values('id').annotate(text=F('name'), value=F('id')))
except ValueError:
results = []
return HttpResponse(json.dumps({'results': results}), content_type='application/json')
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
django-nested-modals-0.0.3.tar.gz
(22.1 kB
view hashes)
Built Distribution
Close
Hashes for django-nested-modals-0.0.3.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | f2ab784489e5806578e157563bd3fd964cd2785a63163a1a28a16affbbd1f5cf |
|
MD5 | 90e7c0b94e4aa96614892049bccb40e1 |
|
BLAKE2b-256 | 471b1736efb0523bc66a558a672cd9c822aa557878deeb78566af479224dfffe |
Close
Hashes for django_nested_modals-0.0.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | efef97f030fc6492eab06ce80fc36fac3413ef0c8e7ffe3a99bd7399295eaebe |
|
MD5 | 3ac6292e8c7b78f9ad824260336478f9 |
|
BLAKE2b-256 | 757de291ed0c2c25bc89cc68077b50421217444be38beffe1455fca214fbe563 |