Obtention de TypeError : __init__() manquant 1 argument positionnel requis : “on_delete” lors de la tentative d’ajout de la table parent après la table enfant avec des entrées

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

J'ai deux classes dans ma base de données sqlite, une table parent nommée Categorie et la table enfant appelée Article. J'ai d'abord créé la classe de table enfant et ajouté des entrées. Alors d'abord j'ai eu ça :

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 

Et après je ont ajouté la table parent, et maintenant mon models.py ressemble à ceci :

from django.db import models # Créez vos modèles ici. 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 

Ainsi, lorsque je lance python manage.py makemigrations <my_app_name>, j'obtiens cette erreur :

Traceback (appel le plus récent en dernier) : Fichier "manage.py", ligne 15, dans <module> execute_from_command_line(sys.argv) Fichier "C:UserslislisAppDataLocalProgramsPythonPython35-32libsite-packagesdjango-2.0-py3.5.eggdjangocoremanagement\__init__.py", ligne 354, dans execute_from_command_line utility.execute() Fichier "C:UserslislisAppDataLocalProgramsPython35-32libsite-packagesdjango-2.0 -py3.5.eggdjangocoremanagement\__init__.py", ligne 330, dans execute django.setup() Fichier "C:UserslisAppDataLocalProgramsPythonPython35-32libsite-packagesdjango-2.0-py3.5.eggdjango\__init__.py", ligne 24, dans setup apps.populate(settings.INSTALLED_APPS) Fichier "C:UserslislisAppDataLocalProgramsPython35-32libsite-packagesdjango-2.0-py3.5.eggdjangoapps egistry.py", ligne 112, dans populate app_config.import_models() Fichier "C:UserslislisAppDataLocalProgramsPythonPython35-32libsite-packagesdjango- 2.0-py3.5.eggdjangoappsconfig.py", ligne 198, dans import_models self.models_module = import_module(models_module_name) File "C:UserslislisAppDataLocalProgramsPythonPython35-32libimportlib\__init__.py", lin e 126, dans import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", ligne 986, in _gcd_import File "<frozen importlib._bootstrap>", ligne 969, dans _find_and_load File "<frozen importlib._bootstrap>", ligne 958, dans _find_and_load_unlocked File "<frozen importlib._bootstrap>", ligne 673, dans _load_unlocked File "<frozen importlib._bootstrap_external>", ligne 665, dans exec_module Fichier "<frozen importlib._bootstrap>", ligne 222, dans _call_with_frames_removed Fichier "C:UserslisDjangomon_sitelogmodels.py", ligne 6, dans <module> class Article(models.Model) : Fichier "C:UserslisDjangomon_sitelogmodels.py", ligne 16, dans Article categorie = models.ForeignKey("Categorie") TypeError : __init__() manquant 1 argument positionnel requis : "on_delete"  

J"ai vu des problèmes similaires dans stackoverflow, mais il semble que ce ne soit pas le même problème : __init__() manque 1 argument positionnel requis : 'quantity'