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:

djing_admin/app/Djing/User.py
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:

djing_admin/app/Djing/User.py
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:

djing_admin/app/Djing/User.py
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