У меня есть существующая база данных с таблицей offices
. Она имеет следующие поля:Как активировать/использовать django-mptt в базе данных с данными?
id
lvl
parent_id
name
code
У меня есть модель Django (1,7), который выглядит как:
class Office(models.Model):
id = models.IntegerField(primary_key=True)
lvl = models.IntegerField(blank=True, null=False)
parent = models.ForeignKey('self', null=True)
name = models.TextField(blank=True)
code = models.TextField(blank=True)
class Meta:
managed = False
db_table = 'offices'
def __str__(self):
return "(" + self.code + ") " + self.name + ", level " + str(self.lvl)
В своей нынешней форме, называя someoffice.parent
работает правильно и возвращает родителя. Тем не менее, мне нужно иметь возможность называть someoffice.children()
и возвращать дочерние элементы отдельного родительского узла.
Это похоже на хороший вариант использования для django-mptt. Тем не менее, я не могу понять, как использовать django-mptt
в существующей таблице моделей и баз данных без ошибок Django, связанных с отсутствующими миграциями. Я более чем счастлив отказаться от модели и/или заменить ее чем-то другим. То, что я не хочу делать, - это выбросить существующую таблицу, если я не смогу сделать это один раз и больше не буду бороться с этим.
Как я могу работать с существующей таблицей базы данных для реализации django-mptt
?
Edit: Есть несколько других функций удобства в django-mptt
я также хотел бы использовать, так что я ищу советы о том, как реализовать либо django-mptt
с существующей таблицей, чтобы изменить таблицу in situ, так что я могу использовать django-mptt
без переноса, или создать новую таблицу, а затем загрузить в нее мои данные. В идеале я могу изменить существующую таблицу, а затем использовать django-mptt
без необходимости запуска миграции Django.
Хорошо, спасибо за информацию. Я не был всеобъемлющим в вопросе, поэтому я отредактирую его. В 'django-mptt' есть другие функции удобства, которые я мог бы использовать в шаблонах и т. Д., Поэтому я ищу способ реализовать это с помощью таблицы, которую у меня есть, и/или совета о том, следует ли мне создать новую таблицы и переноса данных в нее и т. д. – Clay