2011-10-17 11 views
11

Si hago un comentario sobre los manejadores que usan djangoforms todo lo demás parece funcionar.Google App Engine, tiempo de ejecución de Python 2.7, ImportError: no se puede importar el nombre djangoforms

La siguiente es mi app.yaml modificación:

application: xxxxxxx 
version: 5 
#` -1+1 
# runtime: python 
runtime: python27 
api_version: 1 

inbound_services: 
- mail 

#` +3 
libraries: 
- name: django 
    version: "1.2" 

handlers: 
- url: /(.*\.(html|css|js|gif|jpg|png|ico)) 
    static_files: static/\1 
    upload: static/.* 
    expiration: "1d" 
    # expiration: "1m" 

- url: .* 
    script: main.py 

- url: /_ah/mail/.+ 
    script: lib/handler_mail.py 
    login: admin 

El siguiente es el extracto de main.py que he modificado:

import os 
# dummy, enables django template filters to be registered 
os.environ[u'DJANGO_SETTINGS_MODULE'] = u'conf' 
#` -2 
# from google.appengine.dist import use_library 
# use_library('django', '1.2') 

from functools import wraps 
from appengine_utilities.cache import Cache 
from google.appengine.api import taskqueue 
from google.appengine.ext.db import djangoforms 
... 

Aquí está la traza de volver de mi registro: Rastreo (última llamada más reciente): Archivo "/base/data/home/apps/s~cirrussecure1/5.354034990641807540/main.py", línea 23, en de google.appengine.ext.db import djangoforms ImportError: no se puede importar el nombre djangoforms

Algo que estoy haciendo no me permitirá importar djangoforms pero no afecta a nada más. Busqué en Google pero nadie más parece tener un problema (¿todavía?). Gracias.


@all encontrado una solución que me mantiene en gae/Python 2.7, pero no me gusta o la forma en que Google maneja esta parte de la liberación.

Probé wtforms e hice algunos progresos tratando de ponerlo en funcionamiento con gae/python 2.5 antes de llamar lo suficiente.

Luego obtuve djangoforms.py (desde http://code.google.com/p/googleappengine/source/browse/trunk/python/google/appengine/ext/db/djangoforms.py), lo dejé caer con mis archivos, y lo puse a trabajar con gae/python 2.7.

Utilicé la aplicación.yaml que se muestra arriba. También tuve que cambiar {{form_section}} a {{form_section | safe}} en dos archivos de plantilla.

Supongo que Django está cayendo en desgracia con el equipo de gae. Pude entender si djangoforms se desaprobó durante un año y luego se eliminó. Sin embargo, omitir cualquier advertencia o incluso cualquier mención en el documento que compare el lanzamiento actual con el anterior no es algo bueno que hacer a sus clientes.

@google Actualice su, doc.'s, artículos, ejemplos, etc. para que otros no tengan que perder un día como yo.

+3

¿Pudo ver estos errores en su sandbox dev? Los veo solo en producción, pero mi sandbox dev funciona bien, lo cual es molesto para depurar cosas. – dfrankow

+0

Actualmente estoy teniendo este problema y estoy viendo parche en más django y más formularios django, como vista previa, etc. usando www.allbuttonspressed.com o como Nick Johnson dice, elige un marco de formulario específico –

Respuesta

9

El módulo google.appengine.ext.db.djangoforms no se proporciona con el Python 2.7. Puede parchear una copia usted mismo, pero una mejor idea sería modificar su código de manejo de formularios para que no dependa de él; no es compatible y francamente es un hack.

+1

Gracias por confirmar que Estaba pensando en intentar volver a instalarlo. Intenté usar django.forms pero estaba teniendo problemas para que ModelForm y Meta funcionaran (https://docs.djangoproject.com/en/dev/topics/forms/modelforms/) . Algunos ejemplos serían muy útiles. Una revisión de esto tal vez: http://code.google.com/appengine/articles/djangoforms.html? –

+1

@CirrusSecure Sugiero simplemente evitarlo, y usar formularios separados y marcos DB.Integrarlos no es difícil, y las formas modelo siempre han tenido una serie de restricciones y problemas al respecto. –

+1

@NickJohnson ¿Desea proporcionar un artículo más exhaustivo o escribir sobre esto? Estoy en el app-engine-patch y creo que usa djangoforms. ¿Qué está involucrado en bajar? – dfrankow

Cuestiones relacionadas