Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-如何在保存和更新时调用模型内的方法调用_Python_Django - Fatal编程技术网

Python Django-如何在保存和更新时调用模型内的方法调用

Python Django-如何在保存和更新时调用模型内的方法调用,python,django,Python,Django,我有下面的Django模型,我想创建一个方法(称为create),该方法根据子TransactionTask类模型中is_taskcomplete中的假值数量动态填充和更改TransactionDateTime模型类中的状态字段。我尝试创建下面的create方法,但是我迷路了。任何帮助都将不胜感激。提前谢谢 @python_2_unicode_compatible # only if you need to support Python 2 class TransactionDateTime(

我有下面的Django模型,我想创建一个方法(称为create),该方法根据子TransactionTask类模型中is_taskcomplete中的假值数量动态填充和更改TransactionDateTime模型类中的状态字段。我尝试创建下面的create方法,但是我迷路了。任何帮助都将不胜感激。提前谢谢

@python_2_unicode_compatible  # only if you need to support Python 2
class TransactionDateTime(models.Model):
    room = models.ForeignKey(Room, on_delete = models.CASCADE)
    start_dy = models.DateField()
    end_dy = models.DateField(blank=True, null=True)

    def create(self):
        t1 = TransactionDateTime.objects.get(pk=self.pk)
        qy = t1.transactiontask_set.all()
        value = qy.filter(is_taskcomplete = False).count()
        if value > 0:
            return "Complete"
        else:
            return "Incomplete"


    status = TransactionDateTime.create(self)

    def __str__(self):
        return str(self.start_dt)




@python_2_unicode_compatible  # only if you need to support Python 2
class TransactionTask(models.Model):
    transactiondatetime = models.ForeignKey(TransactionDateTime, on_delete = models.CASCADE)
    is_taskcomplete = models.BooleanField(default = False)


def __str__(self):
    return str(self.transtaskname)

我还是不太清楚你为什么这样做。若要在字段中存储数据,则需要定义一个字段;如果你想有一个方法来计算这个字段的值,那么你只需要写一个普通的方法,让这个方法直接给这个字段赋值

status = models.CharField(max_length=10, blank=True)

def create(self):
    qy = self.transactiontask_set.all()
    value = qy.filter(is_taskcomplete = False).count()
    if value > 0:
        self.status = "Complete"
    else:
        self.status = "Incomplete"

(我还认为,
create
对于一个不创建任何内容,只为字段提供一个值的方法来说是一个奇怪的名称,但没关系。)

你真的不清楚你想做什么。“状态”的定义是什么?为什么它要调用类上的方法?目标是创建一个方法,该方法基于一组逻辑动态更新父模型中的字段(状态),如上所述。但是。。。您尚未定义字段。您真的想将这些信息存储在数据库中吗?或者在你需要的时候计算一下?谢谢你的反馈。将其存储在数据库中