如何解决格式设置中的Django错误:AttributeError:“习惯”对象没有属性“目标”

2024-05-16 14:27:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我运行服务器来测试我的习惯跟踪程序。不确定我在格式化时出错的原因:AttributeError:“习惯”对象没有属性“目标”。已经包括了我的models.py。我需要你的帮助,了解我写错了什么,以及如何修复代码。多谢各位

class Habit(models.Model):
    name = models.CharField(max_length=60)
    goal_nbr = models.IntegerField(default=0, null=True, blank=True)
    goal_description = models.CharField(max_length=60, null=True, blank=True)
    start_date = models.DateField()
    end_date = models.DateField()
    created_at = models.DateTimeField(auto_now_add=True)
    updated_at = models.DateTimeField(auto_now=True)
    user = models.ForeignKey(
        User, related_name="habit", on_delete=models.CASCADE)

    @property
    def duration(self):
        delta = end_date - start_date
        return f'{ delta } days'

    def __str__(self):
        return f"Your chosen habit is {self.name}, with a goal of {self.goal_nbr} {self.goal._description} for {self.duration} days, from {self.start_date} to {self.end_date}"


class Activity(models.Model):
    # name = models.CharField(max_length=60)
    result_nbr = models.IntegerField(default=0, null=True, blank=True)
    created_at = models.DateField(auto_now_add=True)
    updated_at = models.DateField(auto_now=True)
    user = models.ForeignKey(
        User, related_name="activity", on_delete=models.CASCADE)
    habit = models.ForeignKey(
        'Habit', related_name="activity", on_delete=models.CASCADE)

    @property
    def diff_between_goal_result(self):
        diff_nbr = result_nbr - self.habit.goal_nbr
        return f'{ diff_nbr }'

    class Meta:
        constraints = [models.UniqueConstraint(
            fields=['created_at', 'habit'], name='one_update_per_day'), ]

    def __str__(self):
        return f"Today you achieved: {self.result_nbr} of your {self.habit.name} {self.habit.goal_description}"

Tags: nameselftrueautodatereturnmodelsdef