定义模型Entry
要记录学到的国际象棋和攀岩知识,需要为用户可在学习笔记中添加的条目定义模型。每个条目都与特定主题相关联,这种关系被称为多对一关系,即多个条目可关联到同一个主题。
在learning_logs的models.py添加代码
class Entry(models.Model):
"""学到的有关某个主题的具体知识"""
topic = models.ForeignKey(Topic)
text = models.TextField()
date_added = models.DateTimeField(auto_now_add=True,on_delete=models.CASCADE)
class Meta:
verbose_name_plural = 'entries'
def __str__(self):
"""返回模型的字符串表示"""
return self.text[:50] + "..."
注意:Django 2.x, on_delete is 是必要的,你必须在参数中加入on_delete=models.CASCADE
添加这个参数后,主外关系键中,级联删除,也就是当删除主表的数据时候从表中的数据也随着一起删除
配置、激活及在网站中应用
- 在应用目录的models.py中添加模型
- 在项目的settings.py中包含这个应用(同一个应用只需添加一次,添加Entry时略过这一步)
- 对应用learning_logs调用makemigrations
- 迁移应用,migrate
- 在应用程序learning_logs的admin.py中添加模型并注册