c мускулом
модель
import mptt
class Category(models.Model):
name = models.CharField(max_length=50, unique=True)
parent = models.ForeignKey('self', null=True, blank=True, related_name='children')
def __unicode__(self):
return self.name
mptt.register(Category, order_insertion_by=['name'])
>>> from main.models import Category as c
>>> r=c(name='root')
>>> r.save()
/usr/lib64/python2.6/site-packages/django/db/backends/mysql/base.py:86: Warning: Field 'lft' doesn't have a default value
return self.cursor.execute(query, args)
/usr/lib64/python2.6/site-packages/django/db/backends/mysql/base.py:86: Warning: Field 'rght' doesn't have a default value
return self.cursor.execute(query, args)
/usr/lib64/python2.6/site-packages/django/db/backends/mysql/base.py:86: Warning: Field 'tree_id' doesn't have a default value
return self.cursor.execute(query, args)
/usr/lib64/python2.6/site-packages/django/db/backends/mysql/base.py:86: Warning: Field 'level' doesn't have a default value
return self.cursor.execute(query, args)
>>>
CREATE TABLE `main_category` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(50) NOT NULL,
`parent_id` int(11) DEFAULT NULL,
`lft` int(10) unsigned NOT NULL,
`rght` int(10) unsigned NOT NULL,
`tree_id` int(10) unsigned NOT NULL,
`level` int(10) unsigned NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY `name` (`name`),
KEY `main_category_63f17a16` (`parent_id`),
KEY `main_category_42b06ff6` (`lft`),
KEY `main_category_91543e5a` (`rght`),
KEY `main_category_efd07f28` (`tree_id`),
KEY `main_category_2a8f42e8` (`level`)
) ENGINE=MyISAM AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
на sqlite3 модель работает как надо
и таблица ДРУГАЯ
CREATE TABLE "main_category" (
"id" integer NOT NULL PRIMARY KEY,
"name" varchar(50) NOT NULL UNIQUE,
"parent_id" integer
)
Откуда такая разница?!