Highly motivated package from Django's DateField & DateTimeField. The library is intended to provide Bikram Sambat Date Time fields for Django's Model and Form.
Note: Currently only supports DateField. DateTimeField will be supported soon in future releases.
The package is dependent on nepali-datetime package and the UI for the date picker is implemented from https://github.com/leapfrogtechnology/nepali-date-picker.
Supports: Django 2.0+
$ pip install django-nepali-datetime-field
Add
nepali_datetime_fieldto yourINSTALLED_APPSlist:INSTALLED_APPS = [ ... 'nepali_datetime_field', ]Importing
NepaliDateFieldmodel field tomodels.pyfile:from nepali_datetime_field.models import NepaliDateField class YourModel(models.Model): ... nepali_date = NepaliDateField()Importing
NepaliDateFieldform field toforms.pyfile:from nepali_datetime_field.forms import NepaliDateField class YourForm(forms.Form): ... nepali_date = NepaliDateField()Whenever using
NepaliDateFieldform field, don't forget to add Widget's media on the <head> section of the html as below:<html> <head> ... {{ form.media }} ... </head> <body> ... {{ form }} ... </body> </html>Querying the model field:
import nepali_datetime nepali_date = nepali_datetime.date(1995,10,1) # get query YourModel.objects.get(nepali_date=nepali_date) # filter query YourModel.objects.filter(nepali_date=nepali_date) # date range query from_date = nepali_datetime.date(1990,1,1) to_date = nepali_datetime.date(1999,12,30) YourModel.objects.filter(nepali_date__range=(from_date, to_date))
Create your custom model form that has explicitly set the
NepaliDateFieldmodel field to theNepaliDateFieldform field from the library:from nepali_datetime_field.forms import NepaliDateField from example_app.models import ExampleModel class ExampleModelForm(forms.ModelForm): nepali_date = NepaliDateField() class Meta: model = ExampleModel fields = '__all__'Now use this form in your
ModelAdminclass:@admin.register(ExampleModel) class ExampleModelAdmin(admin.ModelAdmin): form = ExampleModelForm
Check the example_app for the quick start implementation.
Check some of the usage details in example_app/tests.py.
Play around with the live demo here.