如何修改Django admin ManyToManyField文本?

2024-04-23 11:49:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我有“文章”和“模块”应用程序。在“模块”应用程序中有一个模型,它必须显示文章,并且它们在“模块”中通过多个字段链接起来。在

我的问题是如何修改Django admin中select字段中的文本值?默认情况下,它会显示文章的名称,但我还需要一些来自文章模型的信息。 有简单的方法吗?在


Tags: 模块django方法模型文本名称信息应用程序
3条回答

Django管理选择菜单使用模型实例的unicode值来填充菜单等内容。无论您的__unicode__方法返回的内容都应该是select菜单中的内容。在

你的问题很模糊,但我假设,你有Article模型,它有很多字段,例如Something模型

class Something(models.Model):
  name = models.CharField(max_length=10)
  #...
  def __unicode__(self):
    return u"{} whatever text you want".format(self.name)

class Article(models.Model):
  title = models.CharField(max_length=120)
  something = models.ManyToMany(Something)

  def __unicode__(self):
    return u"{}".format(self.title)

在管理中,您将在多个选择框中看到每个对象的<object_name> whatever text you want,这是您想要的吗?在

根据您的Python版本,您要么想要覆盖模型的__str__字段(python3),要么覆盖模型的__unicode__字段(python2),以更改它们在管理中的显示方式。在

Reference in the Django docs

相关问题 更多 >