python - 类型错误 - 无法将 'User' 对象隐式转换为 str

标签 python python-3.x typeerror

我有一个在 python 2.7 上运行良好的代码,但后来我迁移到 python 3.5,它不再工作了,我收到一个错误。 这是代码:

def gen_cert(keyname, certname, password, username):
cmd = [
    'openssl', 'pkcs12', '-name', username, '-inkey', tempdirname + keyname,
    '-in', tempdirname + certname, '-export', '-out',
    dirname + username + '.p12', '-password', 'pass:' + password
]
s = subprocess.Popen(cmd, shell=False)
out, err = s.communicate('\n'.encode())

错误是 - 无法将“User”对象隐式转换为 str

错误是由于这个dirname + username + '.p12'

以下是局部变量:

| Variable | Value           |
______________________________
| certname |'w0ui8t9mkg.pem' |
| keyname  |'7g89utc1it.pem' |
| password |'bo02qm99ui'     |
| username |<User: abcuser>|

这是调用上述函数的函数:

def generate_user_certificate(self, request, queryset):
    check_folders(request)
    UsersList = []

    for qs in queryset:
        username = qs.username
        keyname = random_name('.pem')
        certname = random_name('.pem')
        password = random_name('')
        gen_cert(keyname, certname, password, username)

        UsersList.append(username)

    # Displaying success message for certificate generation
    allusers = ', '.join(UsersList)
    messages.success(
        request,
        "Certificates for users: " + allusers + " generated successfully.")

此外,我在 allusers = ', '.join(UsersList) 中遇到错误 其中表示序列项 0:预期的 str 实例,用户找到

如何解决? 我正在使用 django 2.0

最佳答案

您正在尝试连接两个对象,但至少其中一个不是 str 类型,为此,您应该实现 User 类的 __str__ 方法,在该方法中返回以下值:代表您的类,以便您可以按照您想要的方式连接它 dirname + str(username) 它调用 username.__str__ 方法

关于python - 类型错误 - 无法将 'User' 对象隐式转换为 str,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51087391/

相关文章:

python - PyQt:仅适用于整数或仅字符串和长度限制的 QLineEdit 输入掩码

python - 使用获取相同值的只读列覆盖只读属性

python - 如何使用 .index 在列表中搜索项目在列表中的位置?

javascript - 类型错误:this.setState.myItems 未定义

Python 类型错误 : 'int' object is not iterable despite proper assignment

python - 如何在python中获得稀疏图拉普拉斯矩阵?

python - 在 Pandas 数据框中将 float 转换为字符串

python - 人脸检测,未检测到人脸

angular - ng-bootstrap typeahead TypeError : Object(. ..) 不是函数

python - Keras/TensorFlow 中具有 2D 输入、2D 权重和 2D 偏差的自定义密集层?