我正在使用Python 3.3.1,Pyramid和SQLAlchemy的最新版本,我想我有一些Unicode问题。
我的数据库模型设置如下:
class Blah(Base):
__tablename__ = 'terms'
term_id = Column(Integer, primary_key=True)
title = Column(Unicode, unique=True)
created = Column(DateTime, default=datetime.datetime.utcnow)
body = Column(UnicodeText)
@property
def slug(self):
return slugify(self.title)
@classmethod
def all(cls):
return DBSession.query(Blah).order_by(sa.desc(Blah.title))
@classmethod
def by_id(cls, term_id):
return DBSession.query(Blah).filter(Blah.term_id == term_id).first()
@classmethod
def by_slug(cls, slug):
return DBSession.query(Blah).filter(Blah.slug == slug).first()
@classmethod
def get_paginator(cls, request, page=1):
page_url = PageURL_WebOb(request)
return Page(Blah.all(), page, url=page_url, items_per_page=5)
slugify和paginator是我改编自Python 2代码的函数,通过基本测试检查确定。我可以运行类似>>的东西slugify('String text')并获得一个看起来像字符串文本的输出,这就是我想要的。
当我尝试将数据添加到数据库而不是我得到的东西或类似的东西而不是实际的slu ..我尝试了各种各样的东西,比如使标题使用Text而不是Unicode,或UnicodeText。任何帮助将不胜感激。
(旁注,我可以用它设置的方式让它与Python 2一起运行......但是查询by_slug可以工作,但只有当我第一次查询by_id时。所以term_id和slug都必须在URL中工作正常。不确定这是否相关......可能是第二个问题)