TurboGears2的可插拔应用程序,它提供一个带有表单的基本用户配置文件页面,允许用户编辑自己的配置文件或更改密码

tgapp-userprofile-validated的Python项目详细描述


关于用户配置文件

userprofile是turbogears2的可插入应用程序,它提供了一个基本用户 包含表单的配置文件页,允许用户编辑自己的配置文件或更改密码。

这是一个为现有的可插拔提供验证的分支,但是引入 打破改变。密码现在在同一个表单上,你现在可以设置化身, 如果用户更改了电子邮件,则必须对其进行确认。

安装

用户配置文件既可以从pypi安装,也可以从github安装:

pip install tgapp-userprofile-validated

应该只对大多数用户有效

插入用户配置文件

在应用程序中config/app_cfg.py导入plug

from tgext.pluggable import plug

然后在文件的结尾处使用userprofile调用plug:

plug(base_config, 'userprofile')

您可以访问您的个人资料 http://localhost:8080/userprofile

选项

tgapp-userprofile支持一些可以传递的选项 使用plug方法自定义应用程序的各个方面:

  • user_partial-要显示到用户配置文件页中的部分的路径。
    可在不更改模板的情况下向配置文件页添加更多数据
  • custom_css-将用于配置文件页而不是默认配置文件页的css文件的路径。

用户属性

tgapp-userprofile在用户类实例中查找各种属性 要驱动其默认行为,最重要的属性是profile_data 属性,该属性可以为字典提供要显示的用户信息。 在“配置文件”页上,但可以使用其他属性来调整行为:

剖面数据

要显示到配置文件页的条目字典, 默认词典的构建方式是:

{'display_name':('Display Name', user.display_name),
 'email_address':('Email Address', user.email_address)}

字典的每个键如果字段的id,在大多数情况下 它将具有相同的用户属性名,其中 该字段已存储。字典的值是元组 其中第一个值是将 显示,第二个是字段的实际值。

如果avatar密钥可用,则 用户的化身图像的url。如果没有 用户配置文件将查找一个tgapp-fbauthFacebook虚拟形象或将 回退到默认化身。

display_name键将用作配置文件页标题。

外形

可用于编辑用户配置文件的toscawidgets或tw2表单。 默认情况下,为中的每个条目自动生成一个文本字段 profile_data已提供。

保存配置文件

将接收编辑提交的用户数据的可调用 表单并相应地更新用户。

默认情况下,值将按原样存储到用户字段中 具有提供给profile_data的相同ID。

引导程序布局

如果你想使用bootstrap来美化用户窗体或changepasswordform的窗体布局,请在你的应用程序中进行cfg:

def replace_profile_form_layout():
    from axf.bootstrap import BootstrapFormLayout
    from userprofile.lib import UserForm
    from userprofile.lib import ChangePasswordForm

    UserForm.child = BootstrapFormLayout(children=UserForm.child.children)
    UserForm.submit.css_class = 'btn-primary form-control'

    ChangePasswordForm.child = BootstrapFormLayout(children=ChangePasswordForm.child.children)
    ChangePasswordForm.submit.css_class = 'btn-primary form-control'

milestones.config_ready.register(replace_profile_form_layout)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java如何提高我的软件项目的速度?   java将Jetty嵌入JavaSE项目   数组中的java重复字符   java我的Shell排序没有按预期工作,我需要一些帮助来找出我做错了什么   java如何在JBoss EAP6/AS7中应用先过滤后安全约束   java使用一个随机运算符来处理多个变量   java为什么我不能在文件中写我的二叉树?   java应用程序不会在Eclipse emulator上运行   我第一次尝试制作一个简单的基于瓷砖的java游戏   java为TermVectors安装Solr修补程序   java无法将更新的对象值从客户端发送到服务器,服务器读取不存在的值   Azure,java sdk,使用ARM模板部署无法转换参数文件   是否有一个Java等价于空合并运算符(?)在C#?   java如果只初始化了超类对象,是否可以调用特定于子类的方法?   向类文件传递值时出现java NullPointerException   java模不起作用   java Android TranslateAnimation动态更新布局的大小   数据结构如何在java中实例化队列对象?   java如果用户选择一些随机的相机应用程序,如何在安卓中正确处理相机意图?