def search(request): try: search_term = request.POST['search'] except (KeyError): msg = "You need to enter a search term" return render_to_response('chemicals/error.html', {'msg':msg}) else: search_terms = request.POST['search'].split(' ') chemicals = Chemical.objects.all() for term in search_terms: try: chemicals = Chemical.objects.get(Q(weight__contains = term) | Q(cas__contains = term) | Q(name__contains = term) | Q(id__contains = term) | Q(structure_smiles__contains = term)) except (Chemical.DoesNotExist): pass return render_to_response('chemicals/search.html', {'chemicals': chemicals, 'search_term':search_term})