【发布时间】:2017-03-21 00:38:26
【问题描述】:
在尝试将模型类的 DateField 用作另一个模型类的 ForeignKey 并在两个类上使用默认设置为今天时遇到问题。错误信息是:
django.core.exceptions.ValidationError: ["'self.date' 值的日期格式无效。它必须是 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.it 中的图像添加到 DailyImage 类,然后将其显示为主页上的标题,以及当天创建的日记条目页面上的标题。创建日记帐分录后,应自动将其引用到当天创建的图像。
在shell中测试,日期字段似乎匹配,但格式为:datetime.date(YYYY, MM, DD)
>>> 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
任何关于如何正确完成此操作的建议将不胜感激!
【问题讨论】:
标签: django django-models foreign-key-relationship datefield