Hi Justin,
I'm sorry for the delay, follow the code of my data.py (do not be
scared with my code):
from google.appengine.api import users
from google.appengine.ext import db
import logging
from utils import slugify, versionate, markdown
class Category(db.Model):
title = db.StringProperty(required=True)
class Entry(db.Model):
author = db.UserProperty()
category = db.ReferenceProperty(Category, required=True,
collection_name='category_set')
title = db.StringProperty(required=True)
slug = db.StringProperty(required=True)
body = db.TextProperty(required=True)
published = db.DateTimeProperty(auto_now_add=True)
updated = db.DateTimeProperty(auto_now=True)
language = db.StringProperty(required=True)
def all_categories():
return Category.all()
def category_by_title(title):
logging.debug('parametro: ' + title)
logging.debug('===============in=============')
cat = db.Query(Category).filter('title =', title).get()
logging.debug('cat : ' + `cat`)
logging.debug('===============out=============')
return cat
def all_entries():
return Entry.all()
def last_updated():
import datetime
last = db.Query(Entry).order('-published').get()
return last.updated if last else datetime.datetime.now()
def latest_entries(limit=10):
return db.Query(Entry).order('-published').fetch(limit=limit)
def entry_by_slug(slug):
'''We're assuming all entries contain a unique slug.'''
return db.Query(Entry).filter('slug =', slug).get()
def exists_entry(slug):
q = db.Query(Entry).filter('slug =', slug).get()
return q is not None
def save_entry(entry):
slug = slugify(entry.title)
while exists_entry(slug):
slug = versionate(slug)
logging.debug('entry: ' + `entry`)
logging.debug('category: ' + `entry.category`)
logging.debug('title: ' + `entry.title`)
logging.debug('language: ' + `entry.language`)
db.put(Entry(
author=users.get_current_user(),
category=category_by_title(entry.category),
title=entry.title,
body=markdown(entry.text),
slug=slug,
language=entry.language
))
def save_category(category):
db.put(Category(title=category.title))