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 = (
'mymodelname',
'myothermodelname',
'user',
'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 lower model name as it is available in ContentType.model field:
CUSTOM_CONTENT_TYPES = (
'mymodelname',
'myothermodelname',
)
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',
}