Obtendo TypeError: __init__() faltando 1 argumento posicional necessário: “on_delete” ao tentar adicionar tabela pai após tabela filho com entradas

| | | | | | | | | | | | | | | | | | | | | | | | |

Tenho duas classes no meu banco de dados sqlite, uma tabela pai chamada Categorie e a tabela filha chamada Artigo. Eu criei primeiro a classe de tabela filha e adiciono entradas. Então, primeiro eu tinha isso:

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 

E depois de I adicionei a tabela pai, e agora meu models.py está assim:

from django.db import models # Crie seus modelos aqui. 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="Data de parto" ) categorie = models.ForeignKey("Categorie") def __str__ (self): return self.titre 

Então, quando executo python manage.py makemigrations <my_app_name>, recebo este erro:

Traceback (última chamada mais recente): Arquivo "manage.py", linha 15, em <module> execute_from_command_line(sys.argv) Arquivo "C:UserslislisAppDataLocalProgramsPythonPython35-32libsite-packagesdjango-2.0-py3.5.eggdjangocoremanagement\__init__.py", linha 354, em execute_from_command_line utility.execute() Arquivo "C:UserslislisAppDataLocalProgramsPythonPython35-32libsiteDataLocalProgramsPythonPython35-32libsite. -py3.5.eggdjangocoremanagement\__init__.py", linha 330, em execute django.setup() Arquivo "C:UserslislisAppDataLocalProgramsPythonPython35-32libsite-packagesdjango-2.0-py3.5.eggdjango\__init__.py", linha 24, em configuração apps.populate(settings.INSTALLED_APPS) Arquivo "C:UserslislisAppDataLocalProgramsPythonPython35-32libsite-packagesdjango-2.0-py3.5.eggdjangoapps egistry.py", linha 112, em populate app_config.import_models() Arquivo "C:UserslislisAppDataLocalProgramsPythonPython35-32libsite-packagesdjangothonPython35-32libsite-packagesd 2.0-py3.5.eggdjangoappsconfig.py", linha 198, em import_models self.models_module = import_module(models_module_name) Arquivo "C:UserslislisAppDataLocalProgramsPythonPython35-32libimportlib\__init__.py", lin e 126, em import_module retorne _bootstrap._gcd_import(name[level:], package, level) Arquivo "<frozen importlib._bootstrap>", linha 986, em _gcd_import File "<frozen importlib._bootstrap>", linha 969, em _find_and_load File "<frozen importlib._bootstrap>", linha 958, em _find_and_load_unlocked File "<frozen importlib._bootstrap>", linha 673, em _load_unlocked File "<frozen importlib._bootstrap_external>", linha 665, em exec_module Arquivo "<frozen importlib._bootstrap>", linha 222, em _call_with_frames_removed Arquivo "C:UserslislisDjangomon_sitelogmodels.py", linha 6, em <module> class Article(models.Model): Arquivo "C:UserslislisDjangomon_sitelogmodels.py", linha 16, no artigo categorie = models.ForeignKey("Categorie") TypeError: __init__() faltando 1 argumento posicional obrigatório: "on_delete"  

Vi alguns problemas semelhantes no stackoverflow, mas parece não ser o mesmo problema: __init__() faltando 1 argumento posicional obrigatório: 'quantity'