【问题标题】:Need help in returning the Date field in Django models在返回 Django 模型中的日期字段时需要帮助
【发布时间】:2022-02-03 21:26:13
【问题描述】:

models.py

class Add_Timelog(models.Model):
    
    project=models.ForeignKey(Project,on_delete=CASCADE,related_name='project')
    project=models.ManyToManyField(Project)
    client=models.ForeignKey(Client,on_delete=CASCADE,related_name='client')
    client=models.ManyToManyField(Client)
    Job=models.ForeignKey(Add_Job,on_delete=CASCADE,related_name='Job')
    Job=models.ManyToManyField(Add_Job)
    Date = models.DateTimeField(max_length=10)
    Hours=models.TimeField(null=True)
    
    
    def __str__(self):
        return self.Date

/api/Add_Timelog/ 处的类型错误 str 返回非字符串(int 类型) 请求方法:GET 请求网址:http://127.0.0.1:8000/api/Add_Timelog/ Django 版本:2.2.12 异常类型:TypeError 异常值:
str 返回非字符串(int 类型)

这是我收到的错误。我期望的解决方案是接收我在数据库中输入的日期,并将值作为日期(整数)而不是字符串接收

【问题讨论】:

  • 不相关,但您似乎通过重新定义属性覆盖了它们。 project 不能同时是 ForeignKey 和 ManyToManyField,它只是定义的最后一个。
  • @Zoro D 对你有帮助,我已经回答了,stackoverflow.com/a/71735107/17562044

标签: python django rest django-models django-rest-framework


【解决方案1】:

__str__ 必须返回 string 并且您正在返回 DateTimeField 值。 在您的 Add_Timelog 模型中将该值转换为 string

def __str__(self):
    return str(self.Date)

更多详情请关注str[Django-doc]

【讨论】:

  • Hii..我已经尝试过你所说的,并在 /admin/App/add_timelog/1/change/ Invalid format string 处收到此错误 ValueError
猜你喜欢
  • 2015-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-08-01
  • 2012-06-13
  • 1970-01-01
  • 2014-09-22
  • 1970-01-01
相关资源
最近更新 更多