Почему мой обратный отсчет времени возвращает NaN, когда я форматирую время в шаблоне django

Я работаю над приложением, где у меня есть обратный отсчет времени до даты события, у меня проблема с форматом времени в django, когда я форматирую дату начала в django format{{ event.start|date:'D D M Y' }}", он возвращает NaN в шаблоне, но когда я форматирую дату следующим образом "date: 2021-11-11T08:32:06+11:11", это работает, я искал решение здесь, но почему-то решение не сработало в моем случае.

HTML 
#This works 
<div class="items-center space-x-2 text-center grid grid-cols-4" uk-countdown="date: 2021-11-11T08:32:06+11:11">

#but this does not work, It returns NaN
<div class="items-center space-x-2 text-center grid grid-cols-4" uk-countdown="{{ event.start|date:'D d M Y' }}"">

Вот моя модель для события

class Event(models.Model):
    title = models.CharField(max_length=220)
    description = models.TextField(_('description'), blank=True)
    image = models.ImageField(upload_to='events/',blank=True)
    url = models.URLField(blank=True)
    country = models.CharField(max_length=200,blank=True)
    city  = models.CharField(max_length=200, blank=True)
    start = models.DateTimeField(_('start'),db_index=True,default=datetime.now().replace(microsecond=0))
    end = models.DateTimeField(_('end'), db_index=True,default=datetime.now().replace(microsecond=0))
    creator = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE, related_name='create')
    interested = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name='interest')
    going  = models.ManyToManyField(settings.AUTH_USER_MODEL, related_name="going")
    created_on = models.DateTimeField(auto_now_add=True)
    updated_on = models.DateTimeField(auto_now=True)
    service = models.CharField(_("service"), blank=True, max_length=200)

Мое представление для события

def event_main(request,pk):
    event = get_object_or_404(Event, pk=pk)
    posts = Post.objects.filter(event=pk).prefetch_related('event_comment').order_by('-date_posted')
    related = Event.objects.filter(creator=request.user)
    liked = [i for i in Post.objects.all()  \
     if Like.objects.filter(username = request.user, post=i)]
    friend_list = FriendList.objects.get(user=request.user)
    friends = friend_list.friends.all()
    groups = GroupEx.objects.filter(group_members=request.user)
    context = {'friends':friends,'groups':groups , 
                  'event':event,'posts':posts,'liked':liked,'related':related}
    return render(request,'event/event_main.html',context)

Форматы совершенно разные... В первом примере значение представлено в формате ISO

uk-countdown="date: 2021-11-11T08:32:06+11:11"

во втором, вы форматируете его

uk-countdown="{{ event.start|date:'D d M Y' }}""

что даст вам

uk-countdown="Fri 11 Nov 2021""

вам, вероятно, следует использовать

uk-countdown="date: {{ event.start|date:"c" }}"

Обратите внимание, что я добавил префикс date: и удалил второй ", а также

У вас также есть проблема с настройками модели по умолчанию. Это:

start = models.DateTimeField(_('start'),db_index=True,default=datetime.now().replace(microsecond=0))
end = models.DateTimeField(_('end'), db_index=True,default=datetime.now().replace(microsecond=0))

даст вам время импорта модуля, которое в производстве может составлять несколько дней до сохранения вашей модели...

Вернуться на верх