Date Fields
Date fields allow you to collect and display date and time information.
Djing offers two types of date fields: Date
and DateTime
. As you may have guessed, the Date
field does not store time information while the DateTime
field does:
from djing.core.Fields.Date import Date
from djing.core.Fields.DateTime import DateTime
from djing.core.Http.Requests.DjingRequest import DjingRequest
from djing_admin.app.Djing.Resource import Resource as DjingResource
class User(DjingResource):
# ...
def fields(self, request: DjingRequest):
return [
Date.make("Birth Date"),
DateTime.make("Created At"),
]
Options
Step
By default, Djing will set a minimum “step” of 1 day for Date
fields and 1 second for DateTime
fields. You may modify the “step” value for both of these fields by providing an integer or an instance of pendulum to the field’s step
methods:
import pendulum
from djing.core.Fields.Date import Date
from djing.core.Fields.DateTime import DateTime
from djing.core.Http.Requests.DjingRequest import DjingRequest
from djing_admin.app.Djing.Resource import Resource as DjingResource
class User(DjingResource):
# ...
def fields(self, request: DjingRequest):
return [
Date.make("Birth Date").step(7),
Date.make("Birth Date").step(pendulum.duration(weeks=1)),
DateTime.make("Created At").step(60),
DateTime.make("Created At").step(pendulum.duration(minutes=1)),
]
Minimum & Maximum Values
Sometimes you may wish to explicitly define minimum and maximum values for Date
or DateTime
fields. This can be done by passing a valid date expression, a date format supported by strtotime
, or an instance of pendulum to the min
and max
methods of these fields:
import pendulum
from djing.core.Fields.Date import Date
from djing.core.Fields.DateTime import DateTime
from djing.core.Http.Requests.DjingRequest import DjingRequest
from djing_admin.app.Djing.Resource import Resource as DjingResource
class User(DjingResource):
# ...
def fields(self, request: DjingRequest):
return [
Date.make("Birth Date")
.min(7)
.max(60),
Date.make("Birth Date")
.min(pendulum.tomorrow()),
.max(pendulum.today().add(weeks=1)),
]
Last updated