ich arbeite gerade an meiner ersten Webanwendung mit Django und stolpere nun über die Anbindung an meine bestehende MySQL-Datenbank. Ich bekomme es nicht hin, dass in Django meine Foreign Keys automatisch ausgefüllt werden.
Meine bestehende Datenbank hat aktuell 2 Tabellen:
- Country
- League
Jedes Land aus Country kann wiederum mehreren Ligen aus League zugeordnet sein.
Folgende Models habe ich mittels inspectdb generiert:
Code: Alles auswählen
from django.db import models
class Country(models.Model):
name = models.CharField(unique=True, max_length=45)
isocode = models.CharField(unique=True, max_length=10)
def __str__(self):
return "{} ({})".format(self.name, self.isocode)
class Meta:
managed = False
db_table = 'Country'
class League(models.Model):
name = models.CharField(max_length=45)
country = models.ForeignKey(to='Country', on_delete=models.CASCADE, db_column='country')
shortcut = models.CharField(unique=True, max_length=45)
def __str__(self):
return "{} {} ({})".format(self.name, self.country_id, self.shortcut)
class Meta:
managed = False
db_table = 'League'
unique_together = (('name', 'country'),)
Code: Alles auswählen
League.objects.all()
Code: Alles auswählen
League.objects.filter(country_id="1")
Code: Alles auswählen
League.objects.filter(country_id="0")
Ich habe das Gefühl, dass die ForeignKeys nicht richtig ausgefüllt werden. Wenn ich nämlich im Backend der Anwendung nachschaue, ist das Feld Country in der Tabelle League leer.
Hat jemand eine Idee, wo mein Fehler liegen könnte?