Seite 1 von 1

Django: FOREIGN KEY constraint failed

Verfasst: Dienstag 10. Juli 2018, 18:45
von Septias
Ich habe eine Model (CTFTeam), was den User erweiter:

Code: Alles auswählen

class BaseProfile(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)

    class Meta:
        abstract = True

    def __str__(self):
        return self.user.username


class BaseSportartProfile(BaseProfile):
    team = models.ForeignKey(Team, on_delete=models.CASCADE, blank=True, null=True, default='0')  
    # Ich habe default auf 0 gesetzt, weil ich sonst 'invalid literal for int() with base 10' als Fehler bekommen habe. Weiß
    # jemand, wie ich das fixen kann ? Habe auch die DB neu erstellt, weil ich dachte, dass das Feld zuerst als int erstellt wurde, aber daran lag es nicht.
    class Meta:
        abstract = True


class CTFProfile(BaseSportartProfile):
    alter = models.CharField(max_length=20)

Dieses Profiel hat den Foreign Key 'team', der auch NULL sein kann, da man nicht direkt ein Team bei Initialisierung des Profils haben kann, sondern sich dann halt später eins aussucht oder erstellt.

Wenn ich jetzt ein Benutzer erstelle, bekomme ich die Fehlermeldung: FOREIGN KEY constraint failed.
Wie kann ich das beheben ?

Re: Django: FOREIGN KEY constraint failed

Verfasst: Dienstag 10. Juli 2018, 18:58
von __blackjack__
Wenn der Defaultwert NULL sein kann, dann solltest Du da auch NULL angeben, also `None` in Python.

Re: Django: FOREIGN KEY constraint failed

Verfasst: Dienstag 10. Juli 2018, 20:06
von Septias
Stimmt schon, aber am liebsten hätte ich immer noch 'Kein Team' oder sowas als default...
Aber danke :-)

Re: Django: FOREIGN KEY constraint failed

Verfasst: Dienstag 10. Juli 2018, 20:09
von Septias
Okay.. ich hätte es echt nicht erwartet, avber '0' mit 'None' austauschen hat es echt gebracht xD Danke ^^