DDF Settings¶
Global Settings¶
You can configure DDF in settings.py
file. You can also override the global config per instance creation when necessary.
DDF_FILL_NULLABLE_FIELDS (Default = False): DDF can fill nullable fields (
null=True
) with None or some data:# SomeModel(models.Model): nullable_field = Field(null=True) G(SomeModel).nullable_field is None # True if DDF_FILL_NULLABLE_FIELDS is True G(SomeModel).nullable_field is None # False if DDF_FILL_NULLABLE_FIELDS is False # You can override the global config for one case: assert G(Model, fill_nullable_fields=False).nullable_field is None assert G(Model, fill_nullable_fields=True).nullable_field is not None
DDF_VALIDATE_MODELS (Default = False): DDF will call
model.full_clean()
method before saving to the database:# You can override the global config for one case: G(Model, validate_models=True) G(Model, validate_models=False)
DDF_FIELD_FIXTURES (Default = {}) (new in 1.8.0): Dictionary where the key is the full qualified name of the field and the value is a function without parameters that returns a value:
DDF_FIELD_FIXTURES = {'path.to.your.Field': lambda: random.randint(0, 10) }
DDF_FK_MIN_DEPTH (Default = 0): For models with non required foreign keys (FKs with null=True), like FKs to itself (
ForeignKey('self')
), cyclic dependencies or even optional FKs, DDF will avoid infinite loops because it stops creating objects indefinitely, because it will stop after the min depth was achieved.:# You can override the global config for one case: G(Model, fk_min_depth=5)
> Incompatibility warning: Before DDF 3.0.3, DDF handled FK cycles instead of FK depth, through the removed properties DDF_NUMBER_OF_LAPS and number_of_laps.
DDF_DEBUG_MODE (Default = False): To show some DDF logs:
# You can override the global config for one case: G(Model, debug_mode=True) G(Model, debug_mode=False)
DDF_SHELL_MODE (Default = False): To disable some DDF warnings so DDF can be used better in Python shell: to populate the DB, for example.