使用str函数改变对象显示名称 – Python Django模型
如何在Django管理界面上改变一个对象的显示名称?每当在Django中创建一个模型的实例时,它都会将该对象显示为ModelName Object(1)。本文将探讨如何使用def __str__(self)
对你的Django模型进行修改,以改变模型中的显示名称。
Django模型中的对象显示名称
考虑到一个名为geeksforgeeks的项目有一个名为geeks的应用程序。
在geeks应用程序的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__()
函数。str函数在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)
def __str__(self):
return "something"
这将把对象显示为管理界面中的始终。
大多数情况下,我们用self对象来命名显示名称,人们可以理解。例如,上述函数中的return self.geeks_field将返回存储在该对象的geeks_field中的字符串,它将显示在管理界面上。
请注意,str函数总是返回一个字符串,人们可以根据自己的方便来修改它。