【发布时间】:2018-05-04 19:58:24
【问题描述】:
我正在尝试使用 Django 在数据库上注册一个新的 Transaction 对象,但是当我尝试执行 user_id = user.id 时,我得到了 TypeError: expected string or bytes-like object 我真的不明白为什么会发生这种情况,因为我做了注册新银行对象时的相同步骤(如下图所示)。我尝试调试并且局部变量具有正确的值,我还尝试使用 string 或 int 强制转换 user.id,但它们都不起作用。
tracebackconsole errorcreate Transaction methodcreate Bank method
models.py
【问题讨论】:
-
问题出在哪里?发布回溯。是迁移问题吗?
-
我已经编辑了帖子,在 StackOverflow 上遇到了一些问题
-
@hansTheFranz 我添加了一些链接来检查回溯,谢谢
-
既然您使用的是
pdb,那么type(user)和type(user.id)提供了什么?回溯告诉您“我期望 X 或 Y”,这意味着user.id两者都不是。可能相关,您在倒数第二行的registerNewUser中不带括号执行b.save。这是一个空语句,它返回一个你永远不会保存的函数对象。你想用save()调用函数吗? -
@sjm324 (Pdb) type(user)
(Pdb) type(user.id) 我尝试转换用户。 id 到 str 并且它仍然抛出 TypeError
标签: django python-3.x django-models django-views typeerror