Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.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错误:AttributeError:';习惯';对象没有属性';目标';_Python_Django - Fatal编程技术网

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

Python 如何解决格式设置中的Django错误:AttributeError:';习惯';对象没有属性';目标';,python,django,Python,Django,我运行服务器来测试我的习惯跟踪程序。不确定我在格式化时出错的原因:AttributeError:“习惯”对象没有属性“目标”。已经包括了我的models.py。我需要你的帮助,了解我写错了什么,以及如何修复代码。多谢各位 class Habit(models.Model): name = models.CharField(max_length=60) goal_nbr = models.IntegerField(default=0, null=True, blank=True)

我运行服务器来测试我的习惯跟踪程序。不确定我在格式化时出错的原因: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}"

例外情况不在这里,请共享完整的回溯。因为错误表明您正在尝试从对象
习惯
获取
目标
属性。但是,
习惯
模型没有属性
目标
。由于您尚未上传整个回溯,因此不确定错误发生在何处。检查
视图
模板中的代码
我在{self.goal.\u description}中的self.goal之后发现并更正了一个不必要的点符号。谢谢你查看我的帖子。