ModelChoiceField标签不正确

时间:2011-06-05 01:17:57

标签: django django-forms

不确定如何更新ModelChoiceField上的标签

型号:

class Category(models.Model):

    categoryText = models.CharField(max_length=50)
    parentCat = models.ForeignKey('self',null=True,blank=True)

形式:

class CategoryForm(forms.Form):
    category  = forms.ModelChoiceField(queryset=Category.objects.all())

现在,当我显示表单时,我将“Category Object”作为下拉列表的标签。我喜欢将标签更改为categoryText中存储的内容。

我该怎么做?

1 个答案:

答案 0 :(得分:2)

class Category(models.Model):
    categoryText = models.CharField(max_length=50)
    parentCat = models.ForeignKey('self',null=True,blank=True)

    def __unicode__(self):
        return self.categoryText

当Django想要打印特定模型对象/表行的人性化版本时(在管理员中,或作为表单标签),unicode方法在内部使用。您应该为您创建的每个模型编写一个unicode方法。

Here is django's entry about the unicode function