2016-05-29 8 views
0

私はPython 2.7 & django 1.8を使用しています。python/djangoの日付形式

私はnoobですので、この問題への答えは明らかかもしれませんが、SO & Googleを検索しましたが、回答が見つかりません。

私はpdfを作成するいくつかのコードが与えられています。 pdfのフッターで、作成日はの2016年5月29日のの形式にする必要があります。月はロケールの省略名、つまりJan、Feb、Mar、Aprなどでなければなりません。

ただし、pdfの日付は29、2016年です。月は小文字で、適切な場合があります。

ここに関連コードがあります。

base.py設定ファイルのコード:

FORMAL_DATE_FORMAT_PYTHON = 'b d, Y' # Dec 25, 2016 

pdf_create_view.pyコード:

def form_valid(self, form): 
    .... 
    date_created = date(datetime.datetime.now(timezone), settings.FORMAL_DATE_FORMAT_PYTHON) 

出力フォーマット:

Created: may 29, 2016 

は、私はいくつかのことを試してみましたが、私は困惑しています。これを解決するための提案があれば歓迎されます。

+0

どのようにしてpdfを作成しますか? 'wkhtmltopdf'や他のツール? Plsは、関連するコード/テンプレートを投稿します! – schwobaseggl

+0

'date'関数はどこから来ていますか? – solarissmoke

+0

はい 'wkhtmltopdf'です。 – user3354539

答えて

0

あなたのdate機能が何を参照しているのかよくわかりません。

from django.utils import timezone 

def form_valid(self, form): 
    .... 
    date_created = timezone.now() # This will create a timezone aware datetime 

は次にテンプレートであなたがコンテキストに渡すことができます:しかし、あなたが使用することができます

{ 
    'date_created': timezone.local_time(date_created, timezone.get_current_timezone()).strftime('%b %d, %Y') 
    ... 
} 

OR文脈で、テンプレートの使用中date_createdを渡す:

{{ date_created|date:"b d Y" }} 

date templatetagのドキュメントは、https://docs.djangoproject.com/en/1.11/ref/templates/builtins/#date

にあります。

date関数がDJangoに組み込まれたテンプレートタグ関数である場合は、pdbを使用し、date_createdのテンプレートに渡される値を確認します。

文字列がテンプレートに送信されるときに文字列が大文字の場合は、CSSによって最初の文字またはPDFジェネレータを下げることができます。一時的なビューを作成し、HTMLファイルとして表示されるものを確認してください。それが大文字の場合は、CSSの低下またはJSをチェックしないと、PDFジェネレータ内の何かになります。

テンプレートに送信されたときの値が小文字の場合は、capitalizeを使用して最初の文字を大文字にすることができます。

def form_valid(self, form): 
    .... 
    date_created = date(datetime.datetime.now(timezone), settings.FORMAL_DATE_FORMAT_PYTHON).capitalize()