Makemigrations Django TypeError缺少1个必需的位置参数:'on_delete'

时间:2018-09-01 18:32:27

标签: django python-3.x django-models database-migration

当我在Django中运行makemigrations时,出现错误:

  

TypeError: init ()缺少1个必需的位置参数:“ on_delete”

TypeError: __init__() missing 1 required positional argument

这是我的代码:

from django.db import models


class List(models.Model):
name = models.CharField(max_length=50)

def __str__(self):
    return "List:{}".format(self.name)


class Card(models.Model):
    title = models.CharField(max_length=100)
    description = models.TextField(blank=True)
    list = models.ForeignKey(List, related_name="cards")
    story_points = models.IntegerField(null=True, blank=True)
    business_value = models.IntegerField(null=True, blank=True)

    def __str__(self):
        return "Card:{}".format(self.title)

2 个答案:

答案 0 :(得分:1)

ForeignKey字段中,on_delete是必填参数。因此,您必须使用它来定义list

list = models.ForeignKey(List, related_name="cards", on_delete=models.CASCADE)
  

多对一关系。需要两个位置参数:与模型相关的类和on_delete选项。

答案 1 :(得分:0)

错误消息指向模型list的字段Card中缺少的参数。尝试类似list = models.ForeignKey(List, related_name="cards", on_delete=models.CASCADE)