如何在django中更改表对象名?

时间:2018-02-20 11:07:18

标签: django django-models

我有一个名为Product的表。每次使用表django创建对象时,都会自动将其命名为Product object(1)Product object(2)等等。

而不是Project object(1)我想把它命名为有创意的东西。在我的Product Table我有一个名为Product Name的字段。无论我在此字段中插入什么,我都希望它成为对象的名称。如果我插入Pen,则应该只显示Pen而不是Product object(1)或类似的内容。

我正在附上一张照片,以便你们清楚地理解我的问题。enter image description here

2 个答案:

答案 0 :(得分:3)

您需要覆盖模型' __str__方法:

class Product(models.Model):
    title = models.CharField()

    def __str__(self):
        return self.title

答案 1 :(得分:3)

您应该为模型定义__str__方法。

class Product(models.Model):
    name = models.CharField(max_length=200)

    def __str__(self):
        return self.name

如果您需要支持Python 2,请使用python_2_unicode_compatible装饰器。如果您只支持Python 2,则可以改为定义__unicode__

from django.utils.encoding import python_2_unicode_compatible

@python_2_unicode_compatible  # only if you need to support Python 2
class Product(models.Model):
    name = models.CharField(max_length=200)

    def __str__(self):
        return self.name

有关详细信息,请参阅__str__方法的文档。