лучший способ написать def __str__(self) в модели django

#django #string #methods

#django #строка #методы

Вопрос:

Я пишу приложение django. Мне любопытно, есть ли лучший способ написания «магического метода» python __str__() , который возвращает строковое представление любого объекта. В настоящее время, следуя документам 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. столько же раз, и это действительно отстой.

Я надеялся, если кто-нибудь знает о более простых способах записи этого, и если есть какие-либо различия. Я не смог найти другой метод в Интернете, поэтому был бы признателен за помощь.

Ответ №1:

Если вы используете Python >= 3.6, то вы можете использовать f-строки.

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

Комментарии:

1. Спасибо, я вижу, что f строк выполняются быстро, и я использую Python > = 3.6, поэтому я начну использовать это вместо %