모델 클래스의 DateField를 다른 모델 클래스의 ForeignKey로 사용하려고 할 때 문제가 발생하고 두 클래스에서 today를 today로 설정하면 문제가 발생합니다. 오류 메시지는 다음과 같습니다Django Models : DateField를 ForeignKey로 사용할 때의 오류
django.core.exceptions.ValidationError: ["'self.date' value has an invalid date format. It must be in YYYY-MM-DD format."]
코드 :
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 클래스에 추가합니다. DailyImage 클래스는 홈 페이지의 머리글로 표시되고 그날 만든 저널 항목의 페이지 머리글로 표시됩니다. 업무 일지 항목이 생성되면 해당 날짜에 생성 된 이미지를 자동으로 참조해야합니다. 쉘에서 테스트
는 날짜 필드가 일치하는 것처럼 보이지만로 포맷됩니다 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
이 작업을 수행해야하는 방법에 대한 어떤 제안하는 것은 적절 크게 될 것이다 고맙다!
빠른 답변 감사드립니다. 이 중 아무 것도 나를 위해 일하는 것처럼 보였다. 대신에 새로운 변수 today = datetime.today.strftime ("% Y- % m- % d")을 만들고 이미지 필드에 할당했습니다. > 이미지 = models.ForeignKey (DailyImage, to_field = 'date' , default = 'today') 아직 제대로 작동하는지 테스트하지 못했지만 지금까지는 괜찮아 보입니다. – user2339709
'to_field ='date '' (기본값)를 생략해야한다고 생각합니다. 'id '로 자동 연결됩니다. 당신이하는 일은 매우 드문 일입니다. 그런 다음 저널을 통해 이미 사용할 수 있으므로 이미지 날짜를 생략 할 수도 있습니다. – FeedTheWeb
그리고 Foreignkey (= one to many) 대신 OneToOneField를 사용하십시오. – FeedTheWeb