Mam klasy podforum z ForeignKey do siebie - nadrzędny:Django - zerowa ForeignKey
class Forum(models.Model):
name = models.CharField(max_length=200)
url = models.URLField()
class SubForum(models.Model):
name = models.CharField(max_length=200)
orginal_id = models.IntegerField()
forum = models.ForeignKey('Forum')
parent = models.ForeignKey('self', null=True, blank=True)
Chcę, aby umożliwić nieważną i pustych enteries - Widziałem przykłady, że jest to właściwy sposób to zrobić.
w SQL widzenia wszystko jest ok:
BEGIN;CREATE TABLE "main_forum" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(200) NOT NULL,
"url" varchar(200) NOT NULL
)
;
CREATE TABLE "main_subforum" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(200) NOT NULL,
"orginal_id" integer NOT NULL,
"forum_id" integer NOT NULL REFERENCES "main_forum" ("id"),
"parent_id" integer
)
;COMMIT;
W parent_id
dziedzinie nie ma NOT NULL
, ale gdy chcę dodać nowe podforum użyciu panel administracyjny bez ustawiania rodzica otrzymuję błąd:
Cannot assign None: "SubForum.parent" does not allow null values.
Co jest nie tak?
Czy przypadkiem nie zaktualizowałeś się przed stwierdzeniem, że nie działa. Następnie w twoich wysiłkach zmierzających do rozwiązania problemu uruchomiłeś updateb i twoja baza danych została zaktualizowana? – wilbbe01
Wpadłem updateb kilka razy, więc w tej chwili trudno jest powiedzieć, co rozwiązany problem. – pbm
Nie, nie powinieneś go usuwać. Rok później był to dla mnie dobry przykład. –