相关疑难解决方法(0)

使用__init __()方法理解Python super()

我正在努力了解它的用法super().从它的外观来看,可以创建两个子类,就好了.

我很想知道以下2个孩子班级之间的实际差异.

class Base(object):
    def __init__(self):
        print "Base created"

class ChildA(Base):
    def __init__(self):
        Base.__init__(self)

class ChildB(Base):
    def __init__(self):
        super(ChildB, self).__init__()

ChildA() 
ChildB()
Run Code Online (Sandbox Code Playgroud)

python oop inheritance class super

2366
推荐指数
7
解决办法
158万
查看次数

获取TypeError:__ init __()缺少1个必需的位置参数:'on_delete'尝试在带有条目的子表后添加父表

我的sqlite数据库中有两个类,一个名为的父表Categorie和一个名为的子表Article.我首先创建了子表类并添加了条目.所以首先我有这个:

class Article(models.Model):
    titre=models.CharField(max_length=100)
    auteur=models.CharField(max_length=42)
    contenu=models.TextField(null=True)
    date=models.DateTimeField(
        auto_now_add=True,
        auto_now=False,
        verbose_name="Date de parution"
    )

    def __str__(self):
        return self.titre
Run Code Online (Sandbox Code Playgroud)

在我添加了父表后,现在我models.py看起来像这样:

from django.db import models

# Create your models here.
class Categorie(models.Model):
    nom = models.CharField(max_length=30)

    def __str__(self):
        return self.nom


class Article(models.Model):
    titre=models.CharField(max_length=100)
    auteur=models.CharField(max_length=42)
    contenu=models.TextField(null=True)
    date=models.DateTimeField(
        auto_now_add=True,
        auto_now=False,
        verbose_name="Date de parution"
    )
    categorie = models.ForeignKey('Categorie')

    def __str__(self):
        return self.titre
Run Code Online (Sandbox Code Playgroud)

所以当我跑步时python manage.py makemigrations <my_app_name>,我收到这个错误:

Traceback (most recent call last):
  File "manage.py", line 15, in <module>
    execute_from_command_line(sys.argv)
  File …
Run Code Online (Sandbox Code Playgroud)

python django django-models django-2.0

74
推荐指数
4
解决办法
10万
查看次数

标签 统计

python ×2

class ×1

django ×1

django-2.0 ×1

django-models ×1

inheritance ×1

oop ×1

super ×1