Add additional logic to your Django forms
Project description
in forms.py
from alo import forms from alo.operators import AND, OR class BookForm(forms.QueryForm): # Django form fields year = forms.IntegerField(required=False, min_value=1970, max_value=2012) title = forms.CharField(required=False) genre = forms.CharField(required=False) author = forms.CharField(required=False) house = forms.CharField(required=False) class Meta: lookups = { # query_name: model_field__lookups 'year': 'publication_date__year', 'title': 'title__icontains', 'genre': 'genres', 'author': 'author_id', 'house': 'publishing_house__id', } extralogic = [ # Combine the form fields with boolean logic AND('genre', OR('author', 'house')) ] class BookModelForm(forms.QueryModelForm): class Meta: model = Book fields = ( 'publication_date', 'title', 'genres', 'author', 'publishing_house' ) lookups = { # query_name: model_field__lookups 'publication_date': 'publication_date__year', 'title': 'title__icontains', } extralogic = [ # Combine the form fields with boolean logic AND('genres', OR('author', 'publishing_house')) ]
in views.py
from .forms import BookForm from .models import Book def example(request): form = BookForm(request.GET) if form.is_valid(): # form.parameters is like form.cleaned_data but # with lookups applied and without empty values Book.objects.filter(**form.parameters) ... ...
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-alo-forms-1.3.0.tar.gz
(4.7 kB
view hashes)
Built Distribution
Close
Hashes for django_alo_forms-1.3.0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5c99caa8066bc248dffad6b5ef9faec51740d44f8fb0d7f9b6d726e91893ba8 |
|
MD5 | 1e574159dc28c948e0fdaa18fda18aad |
|
BLAKE2b-256 | 8486a32ace944f4507ef512c609f8d51cc5368fffff69ea91c474a0153bd9904 |