def resolveTemplate(template, model, obj) :
from rdf_io.models import getattr_path, ConfigVar
vals = { 'model' : model }
for (literal,param,repval,conv) in Formatter().parse(template) :
if param and param != 'model' :
if( param[0] == '_' ) :
val = ConfigVar.getval(param[1:])
if val:
vals[param] = val
else:
raise Exception( "template references unset ConfigVariable %s" % param[1:])
else:
try:
vals[param] = iter(getattr_path(obj,param)).next()
except:
if param == 'slug' :
vals[param] = obj.id
try:
return template.format(**vals)
except KeyError as e :
raise KeyError( 'Property %s of model %s not found when creating API URL' % (e,model))
评论列表
文章目录