django - How to not use blank input values in a query when submitted in a form -


how not let form use blank inputted data in query?

i want user able fill in either incident id field or equipment id field. want user have option leave either field blank. want query search inputted.

for example: if user enters in incident id '6' , leaves equipment id '', want query work using incident id.

forms.py

from django import forms django.db.models import q  .models import incident .models import equipment   class incidentform(forms.form):     incident_id = forms.charfield(required=false)     equipment_id = forms.modelchoicefield(equipment.objects.all(), required=false, widget=forms.textinput)      #def clean(self):     # i'd use clean method force user provide either incident or equipment value      def search(self):         return incident.objects.filter(             q(id=self.cleaned_data['incident_id']) &             q(equipment_id=self.cleaned_data['equipment_id'])         ) 

views.py

from django.http import httpresponseredirect, httpresponse django.core.urlresolvers import reverse django.shortcuts import get_object_or_404, render .forms import incidentform django.views.generic.edit import formview   .models import incident   def index(request):      template = "index.html"      if request.method == 'get':         form = incidentform(request.get)         #incident_list = none         if 'equipment_id' in request.get or 'incident_id' in request.get:         incident_list = none             if form.is_valid():                 incident_list = form.search()                 context = { "form": form,                             "incident_list": incident_list}                 return render(request, template, context)         else:             # form empty show open incidents             form = incidentform()             incident_list = incident.objects.filter(open = 'true').order_by('-incident_date_time_reported')             context = { "form": form,                         "incident_list": incident_list}             return render(request, template, context) 

try this:

def search(self):  cust_id = self.cleaned_data['incident_id'] or '' equip_id =  self.cleaned_data['equipment_id'] or '' return incident.objects.filter(         q(id=cust_id) &         q(equipment_id=equip_id)     ) 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -

How to provide Authorization & Authentication using Asp.net, C#? -