自定义用户偏好存储
Custom user preferences storage
我正在创建一个新的附加组件,其中将包含一些用户首选项。
假设每个用户可以从包含所有内容类别的列表中 select 多个类别。
我的目标是:
- 用户首选项必须是持久的(如果我重新安装附加组件,也许可以让它们仍然存在)
- 注册页面和个人偏好页面保持不变。我将有一个自定义视图 - 表单来更新与此附加组件相关的首选项。
- 轻松索引自定义目录中的值。该目录将用于搜索对某个主题感兴趣的用户(示例:my_custom_catalog.query(主题=“教育”)-> 包含订阅“教育”主题的用户数据的大脑列表)。该目录在卸载时被删除,并在用户更改其首选项时更新。
你能推荐存储这些数据的最佳方式吗?我可以在不更改注册和个人默认表格的情况下使用会员数据吗?或者更好地使用持久对象(导入持久对象)? (非常感谢任何示例。)
在profiles/default/memberdata_properties.xml
中:
<?xml version="1.0"?>
<object name="portal_memberdata">
<property name="custom_topics" type="lines"></property>
</object>
您将创建一个升级步骤以导入 memberdata-properties
。
然后使用:
user = api.user.get(user_id)
user.getProperty("custom_topics")
获取值并
user.setMemberProperties({'custom_topics':list_of_selected_topics})
更新它们。
删除目录/卸载附加组件后,这些值仍会存储。
注册页面和个人偏好表格也没有变化,只有你想(通过扩展它们)。
我正在创建一个新的附加组件,其中将包含一些用户首选项。 假设每个用户可以从包含所有内容类别的列表中 select 多个类别。
我的目标是:
- 用户首选项必须是持久的(如果我重新安装附加组件,也许可以让它们仍然存在)
- 注册页面和个人偏好页面保持不变。我将有一个自定义视图 - 表单来更新与此附加组件相关的首选项。
- 轻松索引自定义目录中的值。该目录将用于搜索对某个主题感兴趣的用户(示例:my_custom_catalog.query(主题=“教育”)-> 包含订阅“教育”主题的用户数据的大脑列表)。该目录在卸载时被删除,并在用户更改其首选项时更新。
你能推荐存储这些数据的最佳方式吗?我可以在不更改注册和个人默认表格的情况下使用会员数据吗?或者更好地使用持久对象(导入持久对象)? (非常感谢任何示例。)
在profiles/default/memberdata_properties.xml
中:
<?xml version="1.0"?>
<object name="portal_memberdata">
<property name="custom_topics" type="lines"></property>
</object>
您将创建一个升级步骤以导入 memberdata-properties
。
然后使用:
user = api.user.get(user_id)
user.getProperty("custom_topics")
获取值并
user.setMemberProperties({'custom_topics':list_of_selected_topics})
更新它们。
删除目录/卸载附加组件后,这些值仍会存储。 注册页面和个人偏好表格也没有变化,只有你想(通过扩展它们)。