首页 > 解决方案 > 在 django 模型中编写 def __str__(self) 的更好方法

问题描述

我正在编写一个 django 应用程序。我很好奇是否有更好的方法来编写__str__()返回任何对象的字符串表示的python“魔术方法”。目前,按照 Django 文档,我发现您可以执行以下操作...

class Todo(models.Model):
  firstName = models.CharField(max_length=30)
  secondName = models.CharField(max_length=30)
  
  def __str__(self):
    "%s %s" % (self.firstName, self.secondName)

很好,但如果我有 8 个或更多字段,那么这样做会有点烦人。首先,我发现自己在计算我想要多少个字段,并确保写出%s很多次,然后再写出self.相同的次数,这真的很糟糕。

我希望如果有人知道更简单的写出来的方法,以及是否有什么区别。我无法在网上找到另一种方法,所以我很感激一些帮助。

标签: djangostringmethods

解决方案


如果您使用 Python >=3.6,那么您可以使用 f 字符串。

def __str__(self):
    return f"{self.firstName} {self.secondName}"

推荐阅读