首页 > 解决方案 > Django 模型设置

问题描述

我收到一个类型错误: __init__() missing 1 required positional argument: 'on_delete'

class Topic(models.Model)    
    text=models.CharField(max_length=200)   
    date_added=models.DateTimeField(auto_now_add=True)
class Entry(models.Model):
    topic = models.ForeignKey(Topic)
    text = models.TextField()
    date_added=models.DateTimeField(auto_now_add=True) 
    class Meta:
        verbose_name_plural='entries'
    def __str__(self):
        return self.text[:50] + "..."

标签: python-3.xdjangopowershell

解决方案


on_delete=models.CASCADE在您的 ForeignKey 主题中添加,如下所示:

topic = models.ForeignKey(Topic, on_delete=models.CASCADE)

在 Django 中,当你使用 ForeignKey 时需要添加 on_delete=models.CASCADE 这意味着当你删除 Topic 时,在 Entry 模型中相同的主题将被一起删除


推荐阅读