本文整理汇总了Python中website.models.Node.add_unregistered_contributor方法的典型用法代码示例。如果您正苦于以下问题:Python Node.add_unregistered_contributor方法的具体用法?Python Node.add_unregistered_contributor怎么用?Python Node.add_unregistered_contributor使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类website.models.Node
的用法示例。
在下文中一共展示了Node.add_unregistered_contributor方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: create
# 需要导入模块: from website.models import Node [as 别名]
# 或者: from website.models.Node import add_unregistered_contributor [as 别名]
def create(self, validated_data):
request = self.context['request']
user = request.user
if 'template_from' in validated_data:
template_from = validated_data.pop('template_from')
template_node = Node.load(key=template_from)
if template_node is None:
raise exceptions.NotFound
if not template_node.has_permission(user, 'read', check_parent=False):
raise exceptions.PermissionDenied
validated_data.pop('creator')
changed_data = {template_from: validated_data}
node = template_node.use_as_template(auth=get_user_auth(request), changes=changed_data)
else:
node = Node(**validated_data)
try:
node.save()
except ValidationValueError as e:
raise InvalidModelValueError(detail=e.message)
if is_truthy(request.GET.get('inherit_contributors')) and validated_data['parent'].has_permission(user, 'write'):
auth = get_user_auth(request)
parent = validated_data['parent']
contributors = []
for contributor in parent.contributors:
if contributor is not user:
contributors.append({
'user': contributor,
'permissions': parent.get_permissions(contributor),
'visible': parent.get_visible(contributor)
})
if not contributor.is_registered:
node.add_unregistered_contributor(
fullname=contributor.fullname, email=contributor.email, auth=auth,
permissions=parent.get_permissions(contributor), existing_user=contributor
)
node.add_contributors(contributors, auth=auth, log=True, save=True)
return node