कृपया मुझे बताएं कि मैं इस प्रारूप में समय को आउटपुट करने के लिए Django का उपयोग कैसे कर सकता हूं, जैसे "अंतिम सोमवार" या "अंतिम शुक्रवार" यदि तिथियों के बीच का अंतर एक सप्ताह से अधिक नहीं है।

0
Saloss 17 अप्रैल 2021, 21:07

1 उत्तर

सबसे बढ़िया उत्तर

मैं इसके लिए एक कस्टम फ़िल्टर लिखूंगा (यह मानता है कि value अतीत की एक तारीख है)। यह त्वरित और गंदा है, और आप "पहले आज," "कल," आदि की सटीक रिपोर्ट करने के लिए मध्यरात्रि से अधिक समय को समायोजित करने के लिए अधिक तर्क चाहते हैं।

from datetime import datetime
from django import template

register = template.Library()

@register.filter(name='relative_date')
def relative_date(value):
    timespan = datetime.now() - value

    if timespan.days == 0:
        return 'Within the last day'

    if timespan.days == 1:
        return 'Yesterday'
    
    if timespan.days <= 7:
        return f"Last {value.strftime('%A')}"

    return value.strftime('%Y-%m-%d') # Or whatever format you want to use for older dates

फिर अपने टेम्पलेट में:

{{ some_date|relative_date }}

पर जानकारी के लिए कस्टम टेम्प्लेट टैग और फ़िल्टर दस्तावेज़ पढ़ें इस फ़ंक्शन वाली फ़ाइल कहाँ रहनी चाहिए और इसे अपनी टेम्पलेट फ़ाइलों में कैसे आयात करें।

0
Dave 17 अप्रैल 2021, 21:23