Search code examples
djangogoogle-app-enginepython-2.7django-nonrel

What's the most reliable django fork to use with Google App Engine with HRD?


Django nonrel's github shows very little recent activity. Is there a more supported library? If not how dependable is Django-nonrel?


Solution

  • I'm researching the same. What I've found is that almost all of the GAE pages that talk about Django (see here, here, here) are old, but they have notes/updates at the top recommending (warning) that django-nonrel should be used if you want to use Django on GAE.

    I also found this (old) GAE page that explains how to use google.appengine.ext.db.djangoforms to get Django form support (without the need for django-nonrel, although that also means you need to use GAE's data models, not Django's -- but I would have liked to try that), but I then saw that db.djangoform support has been abandoned by GAE with Python 2.7. Dead end here.

    So, it appears that if we want to use Django with GAE for anything other than Django templates (do we get any other Django features on GAE with just the pre-installed Django??), we have to use django-nonrel. I'm not aware of any other Django alternatives for GAE (well, there was this Google Summer of Code project, but I don't know what happened with that project).

    As far as dependability, here are a few google group posts that might be of interest: post1, post2.

    It is a bit concerning that, e.g., someone posted to that group on Jun 28th asking how to try out Django 1.4 on appengine, and as of today (16 days later) no one has responded yet. Then again, it looks like a project that would welcome any help.

    BTW, you should be able to use Django's data models with django-nonrel, and hence not have to use GAE data models: GAE article about django-nonrel. Some models (like many-to-many) are not supported though, so some rework/redesign/rethinking might be necessary for any non-trivial project.

    At this point I haven't decided if I'm going the Django + django-nonrel + djangoappengine route, or the webapp2 route.