Geting TypeError:__init __()缺少1个必需的位置参数:'on_delete'

问题描述 投票:0回答:1

'如何重用我正在使用Django 3.0的此错误,'

from django.db import models
# Create your models here.
class Topic(models.Model):
    top_name=models.CharField(max_length=264,unique=True)
    def __str__(self):
        return self.top_name
class Webpage(models.Model):
    topic= models.ForeignKey(Topic)
    name = models.CharField(max_length=264,unique=True)
    url = models.URLField(unique= True)

    def __str__(self):
        return self.name
class AccessRecord(models.Model):
        name = models.ForeignKey(Webpage)
        date = models.DateField()

        def __str__(self):
            return str(self.date)

我复制了Django 1版本的代码,而我正在使用Django 3.0版本。

文件“ C:\ Users \ himan5hu \ Documents \ HTML \ My_Django \ first_project \ first_app \ models.py”,第7行,在 类网页(models.Model):

文件“ C:\ Users \ himan5hu \ Documents \ HTML \ My_Django \ first_project \ first_app \ models.py”,网页topic = models.ForeignKey(Topic)中的第8行

topic= models.ForeignKey(Topic)
python-3.x model-view-controller django-models atom-editor django-3.0
1个回答
0
投票

因为,所以必须为on_delete=… parameter [Django-doc]指定on_delete=…。在ForeignKey之前,默认为

CASCADE是一个参数,指定删除目标对象时的处理方法。如果是on_delete=…,则指向CASCADEWebpage将被删除。

因此,您可以通过以下方式解决此问题:

Topic

您也需要在现有的迁移文件中进行更改。

但是,检查文档并查看是否更合适其他选项可能很有用。

© www.soinside.com 2019 - 2024. All rights reserved.