2010-11-07 1 views
9

У меня есть класс подфорум с ForeignKey к себе - родительский:Джанго - нуль 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) 

Я хочу, чтобы нулевые и пустых enteries - Я видел примеры, что это правильный способ сделать это.

В SQL Server зрения все в порядке:

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; 

В parent_id поле нет NOT NULL, но когда я хочу, чтобы добавить новый подфорум с помощью панели администратора без установки родителя я получаю сообщение об ошибке:

Cannot assign None: "SubForum.parent" does not allow null values.

Что случилось?

ответ

2

Я сделал некоторые изменения, вернулся он назад и теперь все работает нормально ... и я не вижу никакой разницы с кодом, который я разместил здесь ...

Должен ли я удалить вопрос?

+0

Вы случайно не обновили b до того, как обнаружили, что он не работает. Затем в ваших усилиях по решению проблемы вы запустили updateb и ваша база данных была обновлена? – wilbbe01

+0

Я проверил updatedb несколько раз, поэтому в этот момент трудно сказать, что решила проблема. – pbm

+4

Нет, вы не должны его удалять. Через год это был хороший пример для меня. –