TypeError erhalten: __init__() fehlt 1 erforderliches Positionsargument: “on_delete”, wenn versucht wird, eine übergeordnete Tabelle nach einer untergeordneten Tabelle mit Einträgen hinzuzufügen

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

Ich habe zwei Klassen in meiner SQLite-Datenbank, eine übergeordnete Tabelle namens Category und die untergeordnete Tabelle namens Article. Ich habe zuerst die untergeordnete Tabellenklasse erstellt und Einträge hinzugefügt. Also zuerst hatte ich das:

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 

Und nach I habe eine übergeordnete Tabelle hinzugefügt, und jetzt sieht meine models.py so aus:

from django.db import models # Erstelle deine Modelle hier. 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" ) category = models.ForeignKey("Categorie") def __str__ (self): return self.titre 

Wenn ich also python manage.py makemigrations <my_app_name> ausführe, erhalte ich diesen Fehler:

Traceback (letzter Aufruf zuletzt): Datei "manage.py", Zeile 15, in <module> execute_from_command_line(sys.argv) Datei „C:UserslisAppDataLocalProgramsPythonPython35-32libsite-packagesdjango-2.0-py3.5.eggdjangocoremanagement\__init__.py“, Zeile 354, in execute_from_command_line Utility.execute() Datei „C:UserslisAppDataLocalProgramsPythonPython35-32 -py3.5.eggdjangocoremanagement\__init__.py", Zeile 330, führen Sie django.setup() aus Datei "C:UserslisAppDataLocalProgramsPythonPython35-32libsite-packagesdjango-2.0-py3.5.eggdjango\__init__.py", Zeile 24, im Setup apps.populate(settings.INSTALLED_APPS) Datei „C:UserslisAppDataLocalProgramsPythonPython35-32libsite-packagesdjango-2.0-py3.5.eggdjangoapps egistry.py“, Zeile 112, in app_config.import_models() Datei „C:UserslisAppDataLocalProgramsPythonPython35-32libsite-packagesdjango-packages“ 2.0-py3.5.eggdjangoappsconfig.py", Zeile 198, in import_models self.models_module = import_module(models_module_name) Datei "C:UserslisAppDataLocalProgramsPythonPython35-32libimportlib\__init__.py", lin e 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) Datei "<frozen importlib._bootstrap>", Zeile 986, in _gcd_import Datei "<frozen importlib._bootstrap>", Zeile 969, in der _find_and_load-Datei "<frozen importlib._bootstrap>", Zeile 958, in der _find_and_load_unlocked-Datei "<frozen importlib._bootstrap>", Zeile 673, in der _load_unlocked-Datei "<frozen importlib._bootstrap_external>", Zeile 665, in exec_module Datei „<frozen importlib._bootstrap>“, Zeile 222, in _call_with_frames_removed Datei „C:UserslisDjangomon_sitelogmodels.py“, Zeile 6, in <module> class Article(models.Model): File "C:UserslisDjangomon_sitelogmodels.py", line 16, in Article categorye = models.ForeignKey("Categorie") TypeError: __init__() fehlt 1 erforderliches Positionsargument: "on_delete"  

Ich habe einige ähnliche Probleme in Stackoverflow gesehen, aber es scheint nicht dasselbe Problem zu sein: __init__() 1 erforderliches Positionsargument fehlt: 'Menge'