наследование модели django - мульти таблица - ручная вставка - PullRequest
0 голосов
/ 17 ноября 2011

Я только что перестроил часть своей БД для использования многостолового наследования, и теперь все стало намного проще!

У меня есть один вопрос, я пытаюсь вручную вставить тысячи строк в мои таблицы, и теперьЯ не могу понять, как это сделать.

например: До:

class personal(models.Model):
    who = models.CharField...
    stamp = models.DateTime...
    title = models.CharField ...
    descr = models.CharField ...

и в оболочке Python:

for i in range(1000):
    t=datetime.now()
    e=timedelta(minutes=i)
    entry = personal(who='xyz', stamp=t+e, title='title '+str(i), descr='description for '+str(i)
    entry.save()

После:

class common(models.Model):
    who ...
    stamp ...

class personal(common):
    title ...
    descr ...

и в оболочке Python, если ясделайте то же самое, что и выше, он говорит, что в personal нет столбца с именем who / stamp

мой вопрос: как мне настроить вышеприведенное 'for', чтобы вставить несколько строк в мою новую базу данных?

спасибо!

1 Ответ

0 голосов
/ 17 ноября 2011

Возможно, вы хотите наследовать абстрактную модель:

class common(models.Model):
    who ...
    stamp ...

    class Meta:
        abstract = True

class personal(common):
    title ...
    descr ...

Тогда приведенный выше код должен работать.

РЕДАКТИРОВАТЬ:

Для неабстрактного наследования код вставки должен бытькак то так:

for i in range(1000):
    t=datetime.now()
    e=timedelta(minutes=i)
    base = common.objects.create(who='xzy', stamp=t+e)
    entry = personal.objects.create(common_ptr=base, title='title '+str(i), descr='description for '+str(i)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...