首页 > 解决方案 > Django 模型字符串表示

问题描述

我知道可以通过添加来实现模型对象字符串表示

class Company(models.Model):
    name = models.CharField()
    email = models.EmailField(unique=True)

    def __str__(self):
        return self.name

但这是Company对象的表示,而不是模型类本身。意思是如果我创建一个对象

obj = Company(name='string_repr', email='example@example.com')

print(obj)将导致'string_repr'正如预期的那样,因为我得到了对象的字符串表示,而不是类/模型。但是我注意到,在CreateView表单验证过程中,如果已经有一个具有相同电子邮件的模型对象,Django 会返回一条错误消息,指出已经有一个公司使用这样的电子邮件(图片不是英文,但下划线部分是仅相关部分)。

在此处输入图像描述

我想错误消息正在获取类名并将其输入到消息中,但是有没有办法改变模型(类)名称的字符串表示形式?它需要用于翻译目的。我想我可以将类名重命名为本地语言,但这似乎不对。

标签: pythondjango

解决方案


推荐阅读