gpt4 book ai didi

python - Django 尝试将值保存到数据库,但当我尝试保存时值变成 NULL

转载 作者:行者123 更新时间:2023-12-01 01:29:53 24 4
gpt4 key购买 nike

我正在尝试使用子进程运行一个命令,该命令运行良好,然后它应该使用打印函数吐出该值,这也可以完美运行。

cmd = subprocess.check_output(["golemcli", "tasks", 'create',unique_filename]).decode(sys.stdout.encoding)
test = print(cmd)

这将打印类似“cc490086-d851-11e8-9ca6-a6389e8e7978”的内容

现在我想将其保存到我的数据库中。我创建了一个看起来像

的模型
class Usertasks(models.Model):
TaskID = models.CharField(max_length=40)
user = models.CharField(max_length=30)

这就是我的 View 保存数据的方式。

r = Usertasks(user=request.user, TaskID=test,)
r.save()

但是当我尝试保存打印数据时,它会变成 NULL 值?我的 Django 提示以下异常值:

NOT NULL constraint failed: myproject_usertasks.TaskID

我该如何解决这个问题?

最佳答案

问题是 print(..) 本身返回传递的值,它打印一些东西,然后返回,如果要将cmd转换为string,可以使用str(..)构造函数,或者你可以 - 给定 cmd 是一个类似字符串的对象,只需使用 cmd

接下来,您的 userCharField,而不是 User 对象的 ForeignKey,因此您将拥有将其转换为字符串,但这是可取的。我强烈建议考虑将其转换为 ForeignKey,因为如果您稍后更改 User 的用户名,那么您存储的 usernameUserTasks 模型中,将引用不存在的用户。

因此,您可以使用以下方法构造(并同时保存)Usertasks 对象:

r = Usertasks.object.create(user=<b>request.user.username</b>, TaskID=cmd)

但如上所述,存储用户的用户名并不是一个好主意。

关于python - Django 尝试将值保存到数据库,但当我尝试保存时值变成 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52989564/

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