django待办事项列表示例不应该使用外键自行吗?

时间:2012-10-13 22:05:39

标签: django django-models

在django待办事项列表示例available here中,他们创建了第二个todolist项目表,以便他们可以使用外键引用它。

为什么他们不仅仅使用外键来自我?有充分的理由吗?

class DateTime(models.Model):
    datetime = models.DateTimeField(auto_now_add=True)
    def __unicode__(self):
        return unicode(self.datetime)

class Item(models.Model):
    name = models.CharField(max_length=60)
    created = models.ForeignKey(DateTime)
    priority = models.IntegerField(default=0)
    difficulty = models.IntegerField(default=0)
    done = models.BooleanField(default=False)

我认为应该是这样的:

class Item(models.Model):
    datetime = models.DateTimeField(auto_now_add=True)
    name = models.CharField(max_length=60)
    created = models.ForeignKey(self)
    priority = models.IntegerField(default=0)
    difficulty = models.IntegerField(default=0)
    done = models.BooleanField(default=False)

我错过了什么?

1 个答案:

答案 0 :(得分:0)

教程中对此进行了解释:正如他们承认的那样,这是一个“有点黑客的解决方案”(实际上我会说非常),可以通过内联的formset功能一次性添加多个项目。管理员。