2011-03-25 5 views
1

필자는 단순히 'Feature'로 이름을 변경해야하는 'FeatureTag'라는 이름의 모델 (보존/사용해야하는 모델에 데이터가 있음)이 있습니다.Django 모델 이름 바꾸기

class FeatureTag(models.Model): 
     name = models.CharField(max_length=48, unique=True) 
     data = models.ManyToManyField(Product) 
     def __unicode__(self): 
       return self.name 

3 개 질문 :

장고와 함께 할 수있는이 일이 있습니까?

남한에서 할 수있는 일인가요?

다른 이름을 반영하도록 모델의 return 문 이름을 바꿀 수 있습니까?

고맙습니다 !!!! 당신의 3 개 질문

+1

일부 좋은 답변은 http://stackoverflow.com/questions/2862979/easiest-way-to-rename-a-model-using-django-south – gladysbixly

+0

nr.3 소리가 정말 엉망입니다. – pyeleven

+0

re 3 : 예, 클래스 이름을 변경하고, 메타 옵션을 추가하십시오. db_table = 'appname_featuretag'' – Jerzyk

답변

2

:

  • 예, 당신이 당신의 장고의 모델 이름을 바꿀 수 있습니다, 그냥 모든 참조를 해결해야합니다.
  • 예, South에서이 작업을 수행 할 수 있습니다. south에서 생성 된 파일을 편집해야 할 수도 있으므로 생성 된 코드를 확인하십시오.
  • 대체 할 기능과 그 이유는 무엇입니까? 당신의 유스 케이스는 무엇입니까?
+0

글쎄, 모델과 모든 참조의 이름을 변경했지만 syncdb를 실행했을 때 내용이 부실하고 필요하다고 주장했습니다 삭제됩니다. 이름을 바꾸는 동안 모델의 데이터를 보존해야합니다. – pythondjango

+0

삭제 된 이름 바꾸기 및 새 모델을 인식하므로 자동 생성 된 South 마이그레이션을 편집해야합니다. 그러나 South에는 rename_table이 있으므로 적은 노력으로 완료 할 수 있습니다. http://south.aeracode.org/docs/databaseapi.html#methods –

+0

표의 내용이 낡은 것은 아닙니다 ContentTypes는 모델을 제거 할 때 어떤 모델이 있는지 추적하는 표입니다 (또는 이름을 바꾸면) 데이터가 오래된 것입니다. 그들을 제거하는 데 동의해야합니다. 라이브 데이터 인 경우 항상 백업을 먼저 가져옵니다. –