用户界面的jalali日期支持。在管理站点、视图、表单和模板中,可以轻松地将datetimefiled转换为jalalidatetimefield。
django-jalali-date的Python项目详细描述
Django Jalali日期
用户界面的jalali日期支持。在管理站点、视图和模板中轻松地将datetimefiled转换为jalalidatetimefield。
依赖关系
要使用此模块,您需要安装jdatetime(当然还需要django)和pytz模块,您可以使用easy_install或pip安装它
安装
pip install django-jalali-date
用法
settings.py
INSTALLED_APPS=['django_apps','jalali_date','my_apps',]# defaultsJALALI_DATE_DEFAULTS={'Strftime':{'date':'%y/%m/%d','datetime':'%H:%M:%S _ %y/%m/%d',},'Static':{'js':[# loading default jQuery'admin/jquery.ui.datepicker.jalali/scripts/jquery-1.10.2.min.js',# loading datepicker'admin/js/django_jalali.min.js',# OR# 'admin/jquery.ui.datepicker.jalali/scripts/jquery-1.10.2.min.js',# 'admin/jquery.ui.datepicker.jalali/scripts/jquery.ui.core.js',# 'admin/jquery.ui.datepicker.jalali/scripts/calendar.js',# 'admin/jquery.ui.datepicker.jalali/scripts/jquery.ui.datepicker-cc.js',# 'admin/jquery.ui.datepicker.jalali/scripts/jquery.ui.datepicker-cc-fa.js',# 'admin/js/main.js',],'css':{'all':['admin/jquery.ui.datepicker.jalali/themes/base/jquery-ui.min.css',]}},}
views.py
fromjalali_dateimportdatetime2jalali,date2jalalidefmy_view(request):jalali_join=datetime2jalali(request.user.date_joined).strftime('%y/%m/%d _ %H:%M:%S')
forms.py
fromdjangoimportformsfromjalali_date.fieldsimportJalaliDateField,SplitJalaliDateTimeFieldfromjalali_date.widgetsimportAdminJalaliDateWidget,AdminSplitJalaliDateTimeclassTestForm(forms.ModelForm):classMeta:model=TestModelfields=('name','date','date_time')def__init__(self,*args,**kwargs):super(TestForm,self).__init__(*args,**kwargs)self.fields['date']=JalaliDateField(label=_('date'),# date format is "yyyy-mm-dd"widget=AdminJalaliDateWidget# optional, to use default datepicker)# you can added a "class" to this field for use your datepicker!# self.fields['date'].widget.attrs.update({'class': 'jalali_date-date'})self.fields['date_time']=SplitJalaliDateTimeField(label=_('date time'),widget=AdminSplitJalaliDateTime# required, for decompress DatetimeField to JalaliDateField and JalaliTimeField)
template.html
{% load jalali_tags %} <p>{{ request.user.date_joined|to_jalali:'%y/%m/%d _ %H:%M:%S' }}</p><formmethod="post">{% csrf_token %} {{ form.as_p }} <inputtype="submit"></form><!-- By default, Datepicker using jQuery, you need to set your script after loading jQuery! --><!-- loading directly --><linkrel="stylesheet"href="{% static 'admin/jquery.ui.datepicker.jalali/themes/base/jquery-ui.min.css' %}"><scriptsrc="{% static 'admin/js/django_jalali.min.js' %}"></script><!-- OR --><!-- loading by form (if used AdminJalaliDateWidget) --> {{ form.media }}
管理.py
fromdjango.contribimportadminfromjalali_date.adminimportModelAdminJalaliMixin,StackedInlineJalaliMixin,TabularInlineJalaliMixinclassMyInlines1(TabularInlineJalaliMixin,admin.TabularInline):model=SecendModelclassMyInlines2(StackedInlineJalaliMixin,admin.StackedInline):model=ThirdModel@admin.register(FirstModel)classFirstModelAdmin(ModelAdminJalaliMixin,admin.ModelAdmin):inlines=(MyInlines1,MyInlines2,)raw_id_fields=('some_fields',)readonly_fields=('some_fields','date_field',)# you can override formfield, for example:formfield_overrides={JSONField:{'widget':JSONEditor},}