我正在制作一个由Plone提供支持的社交网站,并希望在用户(朋友,粉丝等)之间建立关系。
如何在Plone 4中实现这一目标?
答案 0 :(得分:4)
我建议使用annotations并创建多个树。例如:
import BTrees
from zope import annotation
FOLLOWERS_KEY = "my.product.followers"
FOLLOWS_KEY = "my.product.follows"
FRIENDS_KEY = "my.product.friends"
portal = self.context.portal_url.getPortalObject()
annotations = annotation.interfaces.IAnnotations(portal)
if not annotations.get(FOLLOWERS_KEY, None):
annotations[FOLLOWERS_KEY] = BTrees.IIBTree.IITreeSet()
if not annotations.get(FOLLOWS_KEY, None):
annotations[FOLLOWS_KEY] = BTrees.IIBTree.IITreeSet()
if not annotations.get(FRIENDS_KEY, None):
annotations[FRIENDS_KEY] = BTrees.IIBTree.IITreeSet()
followers = annotation.get(FOLLOWERS_KEY)
follows = annotation.get(FOLLOWS_KEY)
friends = annotation.get(FRIENDS_KEY)
答案 1 :(得分:0)
感谢您的answer
当我提问时,我实际上正在考虑使用ACL组和引用机制。 这有助于权限和共享。
对于每个关系,为每个用户创建一个组(UserA的朋友)
创建用户>
创建关系时 - >为所有用户创建新组(需要时间,但很少使用)
添加/删除关系 - >添加/删除相关组中的用户
更新:似乎我所需要的几乎全部是通过plone.app.relations包实现的。