这是我的模特
class Category(models.Model):
title = models.ForeignKey(Title, verbose_name="Title")
class Meta:
ordering = ['title']
def __unicode__(self):
return self.title.title
我正在使用表单来替换CharField
的ForegnKey字段class CategoryForm(forms.ModelForm):
title = forms.CharField(label = "Title")
class Meta:
model = Category
class CategoryAdmin(admin.ModelAdmin):
form = CategoryForm
我的标题模型
class Title(models.Model):
title = models.CharField("Title", max_length=200)
def __unicode__(self):
return self.title
当我添加和显示类别时,一切正常,但当我尝试编辑类别时,我在标题字段中获取ForeignKey ID。我希望它是标题字符串。有办法吗?
非常感谢
答案 0 :(得分:0)
我没有检查过这个解决方案(我现在无法创建测试应用程序),我不确定它是否有效。
尝试将exclude = ("title", )
添加为CategoryForm成员。也许你需要覆盖CategoryForm的save()(也许是其他)方法。
答案 1 :(得分:0)
我已经通过使标题唯一并在我的类别类中为ForeignKey添加to_field选项来解决这个问题。这是代码:
class Title(models.Model):
title = models.CharField("Title", max_length=200, unique=True)
def __unicode__(self):
return self.title
class Category(models.Model):
title = models.ForeignKey(Title, verbose_name="Title", to_field='title')
class Meta:
ordering = ['title']
def __unicode__(self):
return self.title.title
谢谢