克隆门户用户、组和内容“NoneType”对象没有属性“更新”

问题描述

我正在尝试将 ArcGIS Online 用户克隆到另一个 Online,但是在最后一步调用 Clone 函数时出现错误: 请注意,这些帐户的试用期仅为 21 天。

这是 [ESRI][1] 的完整代码,我在 Jupyter notebook 上运行:

from arcgis.gis import GIS
from IPython.display import display
import arcgis
import os
print (arcgis.__version__)

source = GIS("https://cloneportaltest.maps.arcgis.com/home", "clone_portal", Password)
target = GIS("https://cloneportal2.maps.arcgis.com/home", "clone_portal_2", Password)
target_admin_username = 'clone_portal_2'

#!esri_ & !admin
source_users = source.users.search('!esri_ & !admin')
for user in source_users:
    print(user.username + "\t:\t" + str(user.role))
len(source_users)

target_users = target.users.search('!esri_ & !admin & !system_publisher')
for target in target_users:
       print(target.username + "\t:\t" + str(target.role))
print('LenUsers:',len(target_users))

# filter out system and initial administrator accounts
target_users = target.users.search('!esri_ & !admin & !system_publisher')
target_users


for source_user in source_users:
    try:
        target_user = target.users.get(source_user.username)
        if target_user is not None:
            print('Deleting user: ' + target_user.fullName)
            target_user.reassign_to(target_admin_username)
            target_user.delete()
    except:
        print('User {} does not exist in Target Portal'.format(source_user.username))


def copy_user(target_portal, source_user, password):
    # See if the user has firstName and lastName properties
    try:
        first_name = source_user.firstName
        last_name = source_user.lastName
    except:
        # if not, split the fullName
        full_name = source_user.fullName
        first_name = full_name.split()[0]
        try:
            last_name = full_name.split()[1]
        except:
            last_name = 'NoLastName'

    try:
        # create user
        target_user = target_portal.users.create(source_user.username, password, first_name, 
                                                 last_name, source_user.email, 
                                                 source_user.description, source_user.role)

        # update user properties
        target_user.update(source_user.access, source_user.preferredView,                           source_user.description, source_user.tags, 
                           source_user.get_thumbnail_link(),                           culture=source_user.culture, region=source_user.region)
        return target_user
    
    except Exception as Ex:
        print(str(Ex))
        print("Unable to create user "+ source_user.username)
        return None


for user in source_users:
    print("Creating user: " + user.username)
    copy_user(target, user, 'TestPassword@123')
ــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ

错误 创建用户:clone_portal 无法创建 clone_portal 'nonetype' 对象没有属性 'update' 无法创建用户 clone_portal

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...