2011-10-12 3 views
67

मेरे पास डीबी, %Y-%m-%d में isoformat में तारीखें हैं, हालांकि जब दिनांक टेम्पलेट पर पास हो जाता है, तो यह Oct. 16, 2011 जैसा कुछ आता है।डिफ़ॉल्ट Django दिनांक टेम्पलेट प्रारूप को कैसे बदलें?

क्या वैसे भी है कि मैं जो भी चाहूं प्रारूप में हेरफेर कर सकता हूं?

उत्तर

30
+0

मुझे यकीन नहीं है कि मैं सेटिंग्स फ़ाइल –

+3

में इसे कैसे बदलूं, वैसे ही आप हर दूसरी सेटिंग को बदलते हैं। –

+2

दस्तावेज़ों से लिंक वास्तव में एक जवाब नहीं है, इसलिए इस और ऊपर उल्लिखित मेडमुंड का जवाब कम हो गया। – neuronet

172

अपने टेम्पलेट के भीतर, आप Django के date फिल्टर का उपयोग कर सकते हैं। उदा .:

<p>Birthday: {{ birthday|date:"M d, Y" }}</p> 

देता है:

जन्मदिन: 29 जनवरी date filter docs में 1983

अधिक स्वरूपण उदाहरण।

+0

मुझे लगता है कि यह केवल तब काम करता है जब दिनांक डेटाटाइम ऑब्जेक्ट के रूप में प्रदान किया जाता है। क्या होगा यदि यह दृश्य से सिर्फ एक स्ट्रिंग पास हो गया है? –

+0

एक मनमानी स्ट्रिंग के लिए दिनांक/समय वाला, मैं शायद इसे दृश्य कोड में एक पायथन डेटाटाइम में पार्स कर दूंगा। (या यहां तक ​​कि यदि संभव हो तो भी - जहां भी वह दिनांक स्ट्रिंग पहले मेरे कोड में आती है।) लेकिन यदि आप वास्तव में अपने Django टेम्पलेट्स को डेटाटाइम पास करने के लिए तारों का उपयोग करना चाहते हैं, [यह उत्तर] (http://stackoverflow.com/a/ 33188293/647002) सहायक लग रहा है। – medmunds

+0

अच्छा जवाब, मैं इसे स्वीकार करता हूं। ;) – neuronet

19

सेट दोनों DATE_FORMAT और USE_L10N

Django में पूरी साइट के लिए परिवर्तन करने के लिए 1.4.1 ऐड:

USE_L10N = False 

: अपने settings.py फ़ाइल और संपादित करने

DATE_FORMAT = "Y-m-d" 

चूंकि l10n ओवरराइड DATE_FORMAT

यह इस पर प्रलेखित है: https://docs.djangoproject.com/en/dev/ref/settings/#date-format

4

views.py में दिनांक प्रारूप बदलने के लिए और फिर इसे टेम्पलेट पर असाइन करें।

# get the object details 
home = Home.objects.get(home_id=homeid) 

# get the start date 
_startDate = home.home_startdate.strftime('%m/%d/%Y') 

# assign it to template 
return render_to_response('showme.html' 
             {'home_startdate':_startDate}, 
             context_instance=RequestContext(request))