Configuration

It’s possible to customize Django Custard behaviour by adding CUSTOM_* configuration variables to a Django project settings.py file.

Default values are the ones specified in examples.

Full example

Configuration sample that can be used as a start:

# Django Custard configuration example

CUSTOM_CONTENT_TYPES = (
  'myapp.MyModelName',
  'myotherapp.MyOtherModelName',
  'auth.User',
  'auth.Group',
)

CUSTOM_FIELD_TYPES = {
  'text':     'django.forms.fields.CharField',
  'integer':  'django.forms.fields.IntegerField',
  'float':    'django.forms.fields.FloatField',
  'time':     'django.forms.fields.TimeField',
  'date':     'django.forms.fields.DateField',
  'datetime': 'django.forms.fields.DateTimeField',
  'boolean':  'django.forms.fields.BooleanField',
}

CUSTOM_WIDGET_TYPES = {
  'text':     'django.contrib.admin.widgets.AdminTextInputWidget',
  'integer':  'django.contrib.admin.widgets.AdminIntegerFieldWidget',
  'float':    'django.contrib.admin.widgets.AdminIntegerFieldWidget',
  'time':     'django.contrib.admin.widgets.AdminTimeWidget',
  'date':     'django.contrib.admin.widgets.AdminDateWidget',
  'datetime': 'django.contrib.admin.widgets.AdminSplitDateTime',
  'boolean':  'django.forms.widgets.CheckboxInput',
}

Constants

There are some constants defined in custard.conf that hold the field type names. These can’t be changed:

CUSTOM_TYPE_TEXT     = 'text'
CUSTOM_TYPE_INTEGER  = 'integer'
CUSTOM_TYPE_FLOAT    = 'float'
CUSTOM_TYPE_TIME     = 'time'
CUSTOM_TYPE_DATE     = 'date'
CUSTOM_TYPE_DATETIME = 'datetime'
CUSTOM_TYPE_BOOLEAN  = 'boolean'

Parameters

CUSTOM_CONTENT_TYPES

Select which content types will have custom fields, the name is the ContentType.app_label.``ContentType.model``:

CUSTOM_CONTENT_TYPES = (
  'app_label.ModelName',
)

CUSTOM_FIELD_TYPES

It’s possible to override which custom form fields are generated for each field type when an instance of CustomFieldModelBaseForm is constructed:

CUSTOM_FIELD_TYPES = {
  'text':     'app.forms.MySpecialCharField',
  'integer':  'app.forms.AnotherIntegerField',
}

CUSTOM_WIDGET_TYPES

It’s possible to override which custom form fields widgets are generated for each field type when an instance of CustomFieldModelBaseForm is constructed:

CUSTOM_WIDGET_TYPES = {
  'time':     'app.forms.widgets.AdminTimeWidget',
  'date':     'app.forms.widgets.AdminDateWidget',
  'datetime': 'app.forms.widgets.AdminSplitDateTime',
}