Django Models:使用DateField作为ForeignKey时出现错误



在尝试使用一个模型类的DateField作为另一个模型类的ForeignKey时出现问题,并且在两个类上都使用默认设置为今天。错误信息是:

django.core.exceptions。ValidationError:("自我。"日期"值的日期格式无效。格式必须为YYYY-MM-DD。"]

代码:

class DailyImage(models.Model):
    date = models.DateField(auto_now_add=True, unique=True)
    name = models.CharField(max_length = 1000)
    image = models.CharField(max_length = 1000)
    location = models.CharField(max_length = 1000)
    def __str__(self):
        return str(self.id) + ": " + self.name + ", " + self.location
class JournalEntry(models.Model):
    date = models.DateField(auto_now_add=True)
    journal = models.CharField(max_length = 5000)
    image = models.ForeignKey(DailyImage, to_field='date', default='self.date')

该网站是一个日报。每天,它都会添加一个来自unsplash的图像。将其传递给DailyImage类,然后在主页上显示为标题,在当天创建的日志条目的页面上显示为标题。当创建日记账分录时,它应该自动引用当天创建的映像。

在shell中测试,日期字段似乎匹配,但格式为:datetime。日期(年、月、日)

>>> a = JournalEntry.objects.get(pk=1)
>>> a
<JournalEntry: test>
>>> a.date
datetime.date(2016, 11, 7)
>>> from journal.models import DailyImage as image
>>> b = image.objects.get(pk=1)
>>> b.date
datetime.date(2016, 11, 7)
>>> b.date == a.date
True

任何建议,这应该如何正确地做将非常感激!

a。Date返回datetime对象,但必须设置格式。

t = datetime.date(2016, 11, 7) 
t.strftime("%Y-%m-%d")
# '2016-11-07'

你也可以在settings.py

中设置默认的日期时间格式
DATETIME_FORMAT = 'Y-m-d'

但我不确定这是否能解决你的情况。

相关内容

  • 没有找到相关文章

最新更新