例如:
我有以下型号
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)
可以看出,这是一个树形结构表。我还有一个ModelForm,它包含一个ForeignKey for Categories:
p_category = models.ForeignKey(Categories,verbose_name="Category")
类似结构的样本类别树可能如下所示:
每个人在“类别”中都有一行。但是你会注意到2个不同的“红色”行,两个代表不同的东西,一个代表红色,另一个代表一个名为“红色”的品牌。
然而,在由表单中的标记表示的ForeignKey模型中,它将显示2个类似的“红色”选项。这是我希望更改标记的详细值以反映更相关的内容的地方。
自:
<option>Red</option>
要:
<option>Color > Red</option>
我该怎么做?
答案 0 :(得分: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 + ' > '
return name + self.name
那应该能满足你的期望。