gpt4 book ai didi

mysql - 无法将外键的值更改为对象Django的外键

转载 作者:行者123 更新时间:2023-11-29 07:34:46 28 4
gpt4 key购买 nike

我的模型结构如下:

class user(models.Model):
name = models.CharField(max_length=100)
tasks = models.IntegerField(default=0)



class project(models.Model):
worker = models.ForeignKey(user, on_delete=models.CASCADE)
project_name = models.CharField(max_length=100)


class task(models.Model):
project = models.ForeignKey(project, on_delete=models.CASCADE)
task_name = models.CharField(max_length=150)
expected_date = models.DateField(auto_now=False,auto_now_add=False,)
actual_date = models.DateField(auto_now=False,auto_now_add=False,blank=True,null=True,)

我想遍历任务列表,如果实际日期字段不为空,即任务完成,则将用户类中的任务字段更新为 1。我编写了以下代码:

a = task.objects.filter(actual_date__isnull=False)
for x in a:
x.project.worker.tasks+=1

然而,这并没有给出预期的结果。我该怎么办?

最佳答案

您在修改对象后并未保存它 - 只是修改值不会将其写入数据库。试试这个:

a = task.objects.filter(actual_date__isnull=False)
for x in a:
worker = x.project.worker
worker.tasks += 1
worker.save()

在单独的注释中,您应该考虑遵循 PEP8 约定并使用 CamelCase 作为您的类名。目前,您可以很容易地将类与对象混在一起。

关于mysql - 无法将外键的值更改为对象Django的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49461503/

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