Commits

Waldemar Kornewald committed 00e852c

Added model validation. Slightly modified patch contributed by Wilfred Hughes. Thanks!

Comments (0)

Files changed (1)

 from djangoappengine.boot import setup_env, setup_logging, env_ext
 setup_env()
 
+def validate_models():
+    """Since BaseRunserverCommand is only run once, we need to call
+    model valdidation here to ensure it is run every time the code
+    changes.
+
+    """
+    import logging
+    from django.core.management.validation import get_validation_errors
+    try:
+        from cStringIO import StringIO
+    except ImportError:
+        from StringIO import StringIO
+
+    logging.info("Validating models...")
+
+    s = StringIO()
+    num_errors = get_validation_errors(s, None)
+
+    if num_errors:
+        s.seek(0)
+        error_text = s.read()
+        logging.critical("One or more models did not validate:\n%s" % error_text)
+    else:
+        logging.info("All models validated.")
+
+from djangoappengine.utils import on_production_server
+if not on_production_server:
+    validate_models()
+
 from django.core.handlers.wsgi import WSGIHandler
 from google.appengine.ext.webapp.util import run_wsgi_app
 from django.conf import settings
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.