使用 __str__函数更改对象显示名称 – Django 模型 | Python
如何在 Django 管理界面中更改对象的显示名称?每当在 Django 中创建模型实例时,它都会将该对象显示为ModelName Object(1) 。本文将探讨如何使用def __str__(self)
更改您的 Django 模型以更改模型中的显示名称。
Django 模型中的对象显示名称
考虑一个名为geeks
的项目,它有一个名为geeksforgeeks
的应用程序。
Refer to the following articles to check how to create a project and an app in Django.
- How to Create a Basic Project using MVT in Django?
- How to Create an App in Django ?
在极客应用的models.py
文件中输入以下代码。
from django.db import models
from django.db.models import Model
# Create your models here.
class GeeksModel(Model):
geeks_field = models.CharField(max_length = 200)
在 Django 上运行 makemigrations 和 migrate 并渲染上述模型后,让我们尝试使用字符串“ GfG is Best ”创建一个实例。
现在它将在管理界面中显示与GeeksModel 对象(1)相同的对象。
如何在 Django 管理界面中更改模型实例的显示名称?
要更改显示名称,我们将在模型中使用def __str__()
函数。 django 模型中的str函数返回一个字符串,该字符串完全呈现为该模型实例的显示名称。
例如,如果我们将上面的 models.py 更改为
from django.db import models
from django.db.models import Model
# Create your models here.
class GeeksModel(Model):
geeks_field = models.CharField(max_length = 200)
def __str__(self):
return "something"
这将始终在管理界面中显示对象。
大多数时候,我们使用self
对象来命名人们可以理解的显示名称。例如,上面函数中的return self.geeks_field
将返回存储在该对象的 geeks_field 中的字符串,并将显示在管理界面中。
.
请注意, str函数总是返回一个字符串,并且可以根据自己的方便进行修改。
还要检查——
- 在 Django 管理界面中渲染模型
- 内置字段验证 – Django 模型