Additional Logic on 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) ... ...
There is more! Check the full documentation here
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.7.0.tar.gz
(6.5 kB
view hashes)
Built Distribution
Close
Hashes for django_alo_forms-1.7.0-py2-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ce3735104583dbe8f4e38991167909771d0ab742a9db6dc1af3e2b5037c402cb |
|
MD5 | 511f6b0d2927f0c81908f841ccca8718 |
|
BLAKE2b-256 | 7afd370cb01cbb592308b0291d7f51130bfb8a3dfdc14953922ed96e6bef0e04 |