views の実装

Google App Engine で開発。第七弾。

GAE python27 + django 1.3 です。GAE に含まれている django を使っています。

views.py を見直しました。

from django.template import RequestContext
from django.shortcuts import render_to_response
from google.appengine.ext.db import djangoforms
from catalog import models

class FamilyForm(djangoforms.ModelForm):
    class Meta:
        model = models.Family
        exclude = ['_class']

def home(request):
    if request.method == 'POST':
        form = FamilyForm(request.POST)
        if form.is_valid():
            c = {'success': 'True', 'form': form}
        else:
            c = {'success': 'False', 'form': form}
    else:
        form = FamilyForm()
        c = {'success': 'None', 'form': form}
    return render_to_response('catalog/index.djhtml', c, RequestContext(request))


settings.py

TEMPLATE_CONTEXT_PROCESSORS = (
    'django.core.context_processors.csrf',
)

TEMPLATE_DIRS = (
    os.path.join(os.path.dirname(__file__), 'templates'),
)

TEMPLATE_LOADERS = (
    'django.template.loaders.filesystem.Loader',
    #'django.template.loaders.app_directories.Loader',
    #'django.template.loaders.eggs.Loader',
)


csrfTEMPLATE_CONTEXT_PROCESSORS で指定し、RequestContext を使うように変更し、テンプレートのパスは TEMPLATE_DIRS で指定するようにしています。

フォルダ階層は下記のようになっています。

myproject
  settings.py
  catalog
    models.py
    views.py
    ...
  templates
    catalog
      index.djhtml


参考: