Skip to content

amitgaru2/django-nepali-datetime-field

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

22 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nepali DateTime Field

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+

Installation

$ pip install django-nepali-datetime-field

Quick start

  1. Add nepali_datetime_field to your INSTALLED_APPS list:

    INSTALLED_APPS = [
        ...
        'nepali_datetime_field',
    ]
    
  2. Importing NepaliDateField model field to models.py file:

    from nepali_datetime_field.models import NepaliDateField
    
    class YourModel(models.Model):
        ...
        nepali_date = NepaliDateField()
    
  3. Importing NepaliDateField form field to forms.py file:

    from nepali_datetime_field.forms import NepaliDateField
    
    class YourForm(forms.Form):
        ...
        nepali_date = NepaliDateField()
    
  4. Whenever using NepaliDateField form 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>
    
  5. 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))
    

Quick start for Admin site integration

  1. Create your custom model form that has explicitly set the NepaliDateField model field to the NepaliDateField form 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__'
    
  2. Now use this form in your ModelAdmin class:

    @admin.register(ExampleModel)
    class ExampleModelAdmin(admin.ModelAdmin):
        form = ExampleModelForm
    

Check the example_app for the quick start implementation.

More Usage

Check some of the usage details in example_app/tests.py.

Demo

Play around with the live demo here.