2009-06-12 2 views
1

:Django : ModelForm의 Many2ManyField (select tag) 선택 사항을 어떻게 바꿀 수 있습니까? 예를 들어

내가 후속 모델

class Categories(models.Model): 
    name = models.CharField(max_length=100,verbose_name="Category Name") 
    parent_cat = models.ForeignKey('self',verbose_name="Parent Category",null=True,blank=True,related_name="child_cat") 
    description = models.TextField(verbose_name="Category Description",blank=True) 

사람이 볼 수 있듯이이,이 트리 구조의 테이블입니다.

p_category = models.ForeignKey(Categories,verbose_name="Category") 

구조와 같은 샘플 카테고리 트리가 다음과 같은 수 있습니다 : 나는 또한 카테고리에 대한 외래 키 구성 ModelForm이

  • 레드

    • 브랜드
  • 색상
    • 레드

그들 각각의 카테고리에서 행이있다. 그러나 당신은 2 개의 별개의 "붉은 색"행을 보았을 것입니다. 두 행은 다른 것들을 나타내며, 하나는 붉은 색이고, 다른 하나는 "레드"라는 브랜드입니다.

그러나 양식의 태그로 표시되는 ForeignKey modelform에는 유사한 "Red"옵션이 두 개 표시됩니다. 여기서는 태그의 자세한 값을 변경하여 좀 더 관련성있는 것을 반영하기를 희망합니다.

에서 :

<option>Red</option> 

사람 :

<option>Color > Red</option> 

내가 어떻게 할 수 있습니까? 이 최선의 방법 인 경우

답변

0

는 잘 모르겠지만, 그것은 다음과 같습니다, 그래서 당신은 카테고리 모델을 편집 할 수 있습니다 : 당신을 주어야한다

class Categories(models.Model): 
    name = models.CharField(max_length=100,verbose_name="Category Name") 
    parent_cat = models.ForeignKey('self',verbose_name="Parent Category",null=True,blank=True,related_name="child_cat") 
    description = models.TextField(verbose_name="Category Description",blank=True) 

    def __unicode__(self): 
     name = '' 
     if self.parent_cat: 
      name = self.parent_cat + ' &gt; ' 
     return name + self.name 

당신이 기대하는 것.

관련 문제