Я использую обработчик blobstoreuploadhandler и, следовательно, должен возвращать self.redirect, но мне нужно передать значения в мой шаблон. Как мне это сделать? Если я не могу использовать значения шаблона, тогда я полагаю, что могу использовать переменные сеанса, и я включил библиотеку сеансов beaker, но я не могу понять, как получить доступ к переменным сеанса в шаблоне django. Есть идеи, как мне это сделать?
Я использую встроенный по умолчанию django с движком приложений Google и могу получать доступ к переменным сеанса с помощью обработчика запросов, но я не понимаю, как это сделать в шаблонах:
class Sessiontest(webapp.RequestHandler):
def get(self):
# Get the session object from the environ
self.session = self.request.environ['beaker.session']
# Check to see if a value is in the session
if 'counter' in self.session:
counter = self.session['counter'] + 1
self.session['counter'] = counter
else:
self.session['counter'] = 1
counter = 1
self.session.save()
self.response.out.write('counter: %d' % counter)
Спасибо
Обновление / редактирование: Моя проблема почти такая же, как эта Доступ к переменной сеанса в шаблоне Django с помощью Google App Engine (Webapp) - Python , но с библиотечным стаканом вместо gaeutilities
Обновление: вот часть кода. мы видим, что использование HTTP GET для передачи значений будет не очень хорошим, поскольку есть антиспам-тест, который должен скрывать значения:
def post(self, view):
message = ''
challenge = self.request.get('recaptcha_challenge_field').encode('utf-8')
response = self.request.get('recaptcha_response_field').encode('utf-8')
remoteip = os.environ['REMOTE_ADDR']
cResponse = captcha.submit(
challenge,
response,
CAPTCHA_PRV_KEY,
remoteip)
if cResponse.is_valid:
isHuman=True
else:#failed anti-spam test and can try again
isHuman=False
#Reprint the form
import util
template_values = {'isHuman':isHuman,'user' : users.get_current_user(),}
template_values.update(dict(current_user=self.current_user, facebook_app_id=FACEBOOK_APP_ID))
template_values.update(dict(capture=captcha.displayhtml(public_key = CAPTCHA_PUB_KEY, use_ssl = False, error = None)))
path = os.path.join(os.path.dirname(__file__), 'market', 'market_insert.html')
self.redirect("/ai") # Here the values aren't passed on and I must make a redirect