是否可以自动将Access-Control-Allow-Origin标题添加到由X-Requested-With金字塔中的ajax请求(带标题)启动的所有响应中?
有些URL由我的Pyramid应用程序处理.当未经身份验证的用户尝试打开任何URL时,用户将被重定向到登录表单:
def forbidden(request):
if request.user.keyname == 'guest':
return HTTPFound(location=request.route_url('auth.login',))
request.response.status = 403
return dict(subtitle=u"Access denied")
config.add_view(forbidden, context=HTTPForbidden, renderer='auth/forbidden.mako')
Run Code Online (Sandbox Code Playgroud)
但对于一些网址(路由),我不得不返回登录表单,而是返回401 Unauthorized status code带有WWW-Authenticate标题的表单.我如何设置我的路线来实现这一目标?我猜我必须使用route_predicate.
我需要将javascript函数放到mako模板中.这个函数的第一个参数是string,所以我在*.mako文件中写入(dict(field_name ='geom')):
init_map(
'${field_name}'
);
Run Code Online (Sandbox Code Playgroud)
但是,当我看到我的HTML页面时,它就像:
init_map(
'geom'
)
Run Code Online (Sandbox Code Playgroud)
在这种情况下如何禁用转义?
渲染执行以下方式:
from pyramid.renderers import render
render('georenderer/map.mako', template_args)
Run Code Online (Sandbox Code Playgroud) 我有两个模型:
class Report(Base):
__tablename__ = 'report'
id = Column(Integer, primary_key=True)
class ReportPhoto(Base):
__tablename__ = 'report_photo'
id = Column(Integer, primary_key=True)
report_id = Column(Integer, ForeignKey(Report.id), nullable=False)
report = relationship(Report, uselist=False, backref=backref('report_photo', uselist=True))
Run Code Online (Sandbox Code Playgroud)
我想在 Report 模型中添加一列,表明 ReportPhoto 中是否有任何记录。我尝试以这种方式使用column_property:
class Report(Base):
__tablename__ = 'report'
id = Column(Integer, primary_key=True)
has_photo = column_property(
select(ReportPhoto.any())
)
Run Code Online (Sandbox Code Playgroud)
但得到一个错误NameError: name 'ReportPhoto' is not defined。我该如何解决这个问题?
我在DB中有相同的界面用于查看和使用Pyramid应用程序编辑它们.例如:
为视图的记录路由的一个例子report的表:/birdreport/report/871;
report表编辑记录的路由示例:/birdreport/report/871/edit;
report表的每个记录都包含字段user_id- 该值与authenticated_userid函数返回的值相同.我很清楚如何edit通过添加查看权限来禁用访问权限.但是我如何才能启用访问权限edit只查看用户ID在相应记录中显示的用户?