如何在Django管理员中显示正确的名称对象,而不是“ XXX对象”

时间:2019-08-01 18:53:02

标签: django python-3.x

我在Django项目中有两个应用程序,然后在它们之间创建了ManytoManyField关系。但是,当我在管理站点上对其进行检查时,会出现引用,其中在“多对多”框中显示了型号名称和对象。

我已经尝试在模型中编写 str ,如下所示:

Select-Object

下面是我的模型代码。

Get-ADUser

The image shows the page where I can register and relate some courses to a new person.

1 个答案:

答案 0 :(得分:2)

表单的此部分用于编辑ManyToManyField。它将使用所引用模型的__str__

为了更改文本表示形式,您需要实现__str__模型的Course,例如:

class Course(models.Model):  # Course model, not Person
    name = models.CharField(max_length=128)

    def __str__(self):
        return self.name

将某人的__str__设置为self.course.name似乎并不正确,因为您可能不想用其课程的名称来表示Person。此外,由于这是ManyToManyField,因此还是无法​​使用。

  

注意:通常ManyToManyField的名称是复数,所以courses而不是course,因为它是基本上是Course集合,而不是单个Course