Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python django+中的仅管理区域;应用程序引擎_Python_Django_Google App Engine - Fatal编程技术网

Python django+中的仅管理区域;应用程序引擎

Python django+中的仅管理区域;应用程序引擎,python,django,google-app-engine,Python,Django,Google App Engine,我正在使用django norel部署到应用程序引擎。对于仅管理领域,哪种解决方案更好? 1) 使用app.yaml定义仅限管理员的区域 2) 为googleuserservice编写中间件 更新: 有这个条目 - url: /.* script: djangoappengine/main/main.py 在ap.yaml中,这不意味着所有页面都将由main.py处理吗 如果我使用的是login:admin这将如何影响当前的功能?使用app.yaml作为管理区域,因为login:ad

我正在使用django norel部署到应用程序引擎。对于仅管理领域,哪种解决方案更好? 1) 使用app.yaml定义仅限管理员的区域 2) 为googleuserservice编写中间件

更新: 有这个条目

   - url: /.*
  script: djangoappengine/main/main.py
在ap.yaml中,这不意味着所有页面都将由main.py处理吗
如果我使用的是
login:admin
这将如何影响当前的功能?

使用app.yaml作为管理区域,因为
login:admin
是一个简单而干净的解决方案

如果您想在公共页面上使用版主功能,可以使用

更新:您不能使用
登录:admin
来限制对一个文件中某些功能的访问。如果您想使用它,您必须创建一个单独的admin.py文件或其他文件

您还可以尝试创建一个函数装饰器,如@admin\u required。需要@login_的示例

以下是您必须更改的部分:

user = users.get_current_user()
if not user:
   self.redirect(users.create_login_url(self.request.uri))
   return
else:
   handler_method(self, *args)


对于我使用的第三方管理区域。 为了将变量whitecurrentuser是admin传递给模板,我还发现以下方法很方便

self.response.out.write(template.render(path, {''admin':users.is_current_user_admin()..
然后在模板中显示带有标记的管理员部分

{% if admin %} ... admin stuff
{% if admin %} ... admin stuff