在没有可使用的字符串时创建对象的表示(python、Django)

2024-09-28 21:23:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在使用django教程(我之前已经做过)创建一个简单的时间表应用程序,并努力理解str方法。对于Project类来说效果很好,因为我有string name,但是Worktime模型只有一个日期和整数,所以它不接受str方法。我在str上读到的所有文档似乎都不能回答这个问题,当我没有字符串可处理时,如何创建此对象的有用表示?logged theu today方法也不起作用,但这是另一个问题。。谢谢

class Project (models.Model):
  project_name = models.CharField(max_length=100)
  hourly_rate = models.IntegerField(default=0)
  def __str__(self):
    return self.project_name

class Worktime (models.Model):
  project = models.ForeignKey(Project)
  date_logged = models.DateField('date logged')
  time_worked = models.IntegerField(default=0)
  def __str__(self):
    return self.time_worked
  def logged_today(self):
    return self.date_logged == timezone.now()

Tags: 方法nameselfprojecttodaydatemodelreturn
1条回答
网友
1楼 · 发布于 2024-09-28 21:23:53

字符串表示可以是您喜欢的任何形式。它甚至不必是模型上的一个字段,尽管这显然会使它变得非常无用

当然,你可以使用日期和/或整数,只要你先把它们转换成一个字符串。因此,一个很好的代表可能是:

def __str__(self):
    return 'Worked %s hours on %s' % (self.time_worked, self.date_loggged)

或者任何对你的用例有意义的东西

相关问题 更多 >