As an extended package of 'nepali', we need to create a new field called NepaliDateField in Django that supports Nepali dates. This field will be used in both Django models and forms.
Model Usage
Initialization
class MyNepaliInfo(models.Model):
...
birthday = NepaliDateField(...)
...
Saving data
This field will support both Python's date and nepalidate.
info = MyNepaliInfo()
info.birthday = nepalidate(2051, 4, 29) # nepali date
...
info.save()
# OR
info.birthday = datetime.date(1994, 8, 13) # Python's date
# OR
MyNepaliInfo.objects.create(
...
birthday = nepalidate(2051, 4, 29),
...
)
Filtering
Filtering should be done by both Python's date and nepalidate. Also, user should be able to filter with nepali date's year, month, or day.
# filtering with nepalidate
MyNepaliInfo.objects.filter(birthday=nepalidate(2051, 2, 29))
# filtering with Python's date
MyNepaliInfo.objects.filter(birthday=date(1994, 8, 13)
# date range filtering
MyNepaliInfo.objects.filter(birthday__range=(nepalidate1, nepalidate2))
MyNepaliInfo.objects.filter(birthday__gt=nepalidate1)
# Filtering with Nepali year, same goes for the month and day
MyNepaliInfo.objects.filter(birthday__year=2051)
# Filtering with English year
MyNepaliInfo.objects.filter(birthday__year_en=1994)
Form Usage
Initialization
class MyNepaliInfoForm(forms.Form):
...
birthday = NepaliDateFormField(...)
...
As an extended package of 'nepali', we need to create a new field called NepaliDateField in Django that supports Nepali dates. This field will be used in both Django models and forms.
Model Usage
Initialization
Saving data
This field will support both Python's date and nepalidate.
Filtering
Filtering should be done by both Python's date and nepalidate. Also, user should be able to filter with nepali date's year, month, or day.
Form Usage
Initialization
...