2009-06-12 11 views
1

:1が見ることができるように、私がフォローモデルDjango:ModelFormのMany2ManyField(選択タグ)の選択肢を冗長な値に変更するにはどうすればよいですか?たとえば

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") 

構造のようなサンプルのカテゴリツリーには、以下の通りであるかもしれない:

  • ブランド
    • レッド
  • 私はまた、カテゴリーのためのForeignKeyで構成さのModelFormを持っています
  • カラー
    • レッド

それらの各カテゴリ内の行を持っています。しかし、あなたは2つの異なる「赤い」行に気付くでしょう。どちらも、異なるものを表し、1つは赤の色、もう1つはブランドの「赤」です。

しかし、フォーム内のタグで表されるForeignKeyモデルフォームでは、2つの同様の「赤」オプションが表示されます。ここでは、タグの冗長な値を変更して、より適切なものを反映させることを望みます。

から:

<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 

あなたが期待する何を与えるべきであること。

関連する問題