# -*- coding:utf-8 -*- from __future__ import absolute_import, unicode_literals from django import forms from django_select2.forms import ( HeavySelect2MultipleWidget, HeavySelect2Widget, Select2MultipleWidget, Select2Widget, ModelSelect2MultipleWidget, ModelSelect2Widget) from tests.testapp import models class GenreModelForm(forms.ModelForm): class Meta: model = models.Genre fields = ( 'title', ) class GenreForm(forms.Form): title = forms.CharField(max_length=50) class ArtistModelForm(forms.ModelForm): test = forms.BooleanField('asdf') class Meta: model = models.Artist fields = ( 'title', 'genres', ) widgets = { 'genres': Select2MultipleWidget } class ArtistForm(forms.Form): title = forms.CharField(max_length=50) genres = forms.ModelMultipleChoiceField(widget=ModelSelect2MultipleWidget( queryset=models.Genre.objects.all(), search_fields=['title__icontains'], ), queryset=models.Genre.objects.all()) class AlbumModelForm(forms.ModelForm): class Meta: model = models.Album fields = ( 'title', 'artist', ) class AlbumForm(forms.Form): title = forms.CharField(max_length=255) artist = forms.ModelChoiceField(widget=ModelSelect2Widget( model=models.Artist, search_fields=['title__icontains'] ), queryset=models.Artist.objects.all()) class Select2WidgetForm(forms.Form): NUMBER_CHOICES = [ (1, 'One'), (2, 'Two'), (3, 'Three'), (4, 'Four'), ] number = forms.ChoiceField(widget=Select2Widget(), choices=NUMBER_CHOICES) class HeavySelect2WidgetForm(forms.Form): heavy_number = forms.ChoiceField(widget=HeavySelect2Widget(data_view='heavy_data')) class HeavySelect2MultipleWidgetForm(forms.Form): heavy_number = forms.MultipleChoiceField(widget=HeavySelect2MultipleWidget(data_view='heavy_data'))