테이블이 offices
인 기존 데이터베이스가 있습니다. 그것은 다음과 같은 필드가 있습니다 제대로 someoffice.parent
작품을 호출, 현재의 형태에서데이터가있는 데이터베이스에서 django-mptt를 활성화/사용하려면 어떻게합니까?
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)
부모를 반환
id
lvl
parent_id
name
code
내가처럼 보이는 장고 (1.7) 모델이있다. 그러나 someoffice.children()
에 전화를 걸어 개별 부모 노드의 하위 항목을 다시 가져올 수 있어야합니다.
이것은 django-mptt의 좋은 사용 예입니다. 그러나 Django가 누락 된 마이그레이션에 대한 오류를 발생시키지 않으면 서 기존 모델 및 데이터베이스 테이블에서 django-mptt
을 사용하는 방법을 알 수 없습니다. 모델을 스크랩하거나 다른 것으로 교체하는 것이 기쁘다. 내가 한 번하고 쉽게 할 수없고 더이상 고생 할 필요가 없다면 기존 테이블을 버려두고 싶지 않습니다.
django-mptt
을 구현하기 위해 기존 데이터베이스 테이블을 어떻게 사용할 수 있습니까?
편집 :이 나는 또한 사용하고자하는 것 django-mptt
에서 여러 가지 다른 편의 기능은, 그래서 테이블을 수정하기 위해, 기존의 테이블과 django-mptt
을 구현하는 두 방법에 대한 조언을 찾고 있어요 in situ 마이그레이션없이 django-mptt
을 사용하거나 새 테이블을 만든 다음 내 데이터를로드 할 수 있습니다. 이상적으로는 기존 테이블을 변경 한 다음 django-mptt
을 사용하여 장고 마이그레이션을 실행할 필요가 없습니다.
정보를 제공해 주셔서 감사합니다. 나는 질문에 포괄적이지 않았기 때문에 그것을 편집 할 것이다. 'django-mptt'에는 템플릿과 같은 다른 편리한 함수가 있습니다. 그래서 테이블을 가지고 구현할 방법을 찾고 있습니다. 그리고/또는 새로운 것을 생성해야하는지에 대한 조언을합니다. 테이블로 옮기고 데이터를 그 안에 옮긴다. – Clay