gpt4 book ai didi

python - TypeError - 无法将 'User' 对象隐式转换为 str

转载 作者:行者123 更新时间:2023-11-28 22:17:44 25 4
gpt4 key购买 nike

我有一个代码在 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) 中遇到错误上面写着 sequence item 0: expected str instance, User found

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

最佳答案

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

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

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com