Implement NepaliDateField for Django Models and Forms
Opened this issue · 1 comments
aj3sh commented
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(...)
...
...