2010-11-07 12 views
9

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?

Odpowiedz

2

zrobiłem kilka zmian, powrócił on z powrotem i teraz wszystko działa dobrze ... i nie widzę żadnej różnicy z kodem, który napisałem tutaj ...

powinienem usunąć pytanie?

+0

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

+0

Wpadłem updateb kilka razy, więc w tej chwili trudno jest powiedzieć, co rozwiązany problem. – pbm

+4

Nie, nie powinieneś go usuwać. Rok później był to dla mnie dobry przykład. –

Powiązane problemy