def _get_unique_secret(): attempt = get_name() try: Traveller.objects.get(secret=process_secret(attempt.lower())) except Traveller.DoesNotExist: return attempt return _get_unique_secret()
def register(request): if request.method == "POST": traveller_form = TravellerForm(request.POST, request.FILES) if traveller_form.is_valid(): # combine traveller's secret with site secret and hash before saving traveller = traveller_form.save(commit=False) display_secret = _get_unique_secret() store_secret = process_secret(display_secret.lower()) traveller.secret = store_secret traveller.save() initial_update = TravellerUpdate(traveller=traveller, status=STATUS_IN_TRANSIT, current_country=traveller.home_country) initial_update.save() return render_to_response('confirm.html', {'secret': display_secret}, context_instance=RequestContext(request)) else: traveller_form = TravellerForm() return render_to_response('register.html', {'traveller_form': traveller_form}, context_instance=RequestContext(request))