Как мне импортировать метод render_to_response из Django 1.1 внутри Google App Engine? - PullRequest
2 голосов
/ 15 ноября 2009

Я новичок в Python, так что я уверен, что это легко. Вот код в моем main.py:

import os
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

from google.appengine.dist import use_library
use_library('django', '1.1')

# Use django form library.
from django import forms
from django.shortcuts import render_to_response

Последняя строка разрывается с ошибкой ImportError. Если я не включу это, то получаю ошибку, что "render_to_response" недоступен. Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 15 ноября 2009

Ну, render_to_response - это сокращение для , так что попробуйте:

from django.template import Context, loader
from django.http import HttpResponse

def render_to_response(tmpl, data):
    t = loader.get_template(tmpl)
    c = Context(data)
    return HttpResponse(t.render(c))

render_to_response("templates/index.html", {"foo": "bar"})
0 голосов
/ 07 декабря 2009

В этом случае проблема закончилась тем, что Google App Engine использует версию 0.96 Django, и он фактически не мог найти метод 'redirect', потому что это только в Django 1.1. Если вы используете служебный метод GAE 'use_library', вы можете указать, какую версию платформы Django вы хотите использовать, и эта проблема исчезнет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...