def lookup(request): ''' get: render a form for user to lookup the sequence id for a fasta sequence from a genome. post: redirect to a page which will show the id. ''' raise django.http.Http404 if request.method == 'POST': # If the form has been submitted... form = LookupForm(request.POST) # A form bound to the POST data if form.is_valid(): # All validation rules pass logging.debug(form.cleaned_data) genome, fasta = form.cleaned_data['genome'], form.cleaned_data['fasta'] seqId = BioUtilities.findSeqIdWithFasta(fasta, roundup.dataset.getGenomeIndexPath(webconfig.CURRENT_DATASET, genome)) # store result in cache, so can do a redirect/get. key = makeUniqueId() roundup_util.cacheSet(key, {'genome': genome, 'fasta': fasta, 'seqId': seqId}) # redirect the post to a get. http://en.wikipedia.org/wiki/Post/Redirect/Get return django.shortcuts.redirect(django.core.urlresolvers.reverse(lookup_result, kwargs={'key': key})) else: form = LookupForm() # An unbound form example = "{'fasta': '>example_nameline\\nMNFLWKGRRFLIAGILPTFEGAADEIVDKENKTYKAFLASKPPEETGLERLKQMFTIDEF', 'genome': '7227'}" return django.shortcuts.render(request, 'lookup.html', {'form': form, 'nav_id': 'lookup', 'form_doc_id': 'lookup', 'form_action': django.core.urlresolvers.reverse(lookup), 'form_example': example})