2016-10-23 15 views
0

グレゴリオ暦のデータベースに日付を保存することはできますが、Jalaliで取得して表示するモデルはありますか? jdatetimeは非常に優れていますが、djangoのjdatetimeを使用するdjango_jalaliはすばらしいものではなく、ドキュメントが貧弱です。だから私はちょうどjdatetimeを使いたい。モデルは自動的にフィールドを変換しますか?

with jdatetime日付を変換できます。

from jdatetime import date as jdate 
from datetime import date 
#get jalali date from gregorian 
jd = jdate.fromgregorian(date=date.today()) 
#get gregorian date from jalali 
gd = jd.togregorian() 

フォームで日付を取得する必要があります。 commit = Falseは良いアイデアを使用していますが、FormModelを使用するとどうなりますか?ジャラリに変換

はテンプレートタグによって行われます。

from jdatetime import date as jdate 
def tojalali(value, arg=None): 
    d = jdate.fromgregorian(date=value) 
    return str(d.year) + '/' + str(d.month) + '/' + str(d.day) 

register.filter('tojalali',tojalali) 

はどうすればフォームにジャラリで日付を取得してのModelFormを使用してモデルのためにそれを変換することができますか?

答えて

0

あなたは、標準のDjangoの日付ウィジェットを拡張し、format_valueをオーバーライドする必要があります(DBからグレゴリオ暦取得し、ジャラリを示すため。)及びget_value_from_data_dict方法。私はジャラリ暦は異なるだろうし、あなたが別のカレンダーが必要になるため、同様の方法をレンダリングと一緒にウィジェットを書くためにあなたをお勧めします

class CategoryWidget(forms.TextInput): 
    def __init__(self,attrs=None): 
     super(CategoryWidget, self).__init__(attrs) 
    def value_from_datadict(self, data, files, name): 
     #Your Code to process from jalali to gregorian. 

    def format_value(self, value): 
     #Your Code to process from gregorian to jalali. 

Detailed Tutorial Django Docs

よう

何かウィジェット。次に、2つのメソッドをオーバーライドします。 次に、そのフィールドのモデルフォームで使用するウィジェットを指定できます。

関連する問題