Hey James,
Thanks for your follow-up here.
I think for me the thing that's compelling is the flow you describe in
comment 12:
* A user renders an unbound model form, where all model fields have defaults.
* The form is pre-filled with the default values.
* The form is submitted without changes. (The default values are submitted.)
* A new model instance is created with the defaults in place.
Except that doesn't work with range fields.
In your case, where you've specified a default (and null=False) it makes sense that the form field would return
a `self.range_type(None, None)` rather than None here.
What I'm not sure about is whether that always makes sense?
What if I don't define that default on the model field? What if I want `None`?
forms.CharField will always return it's empty_value here (by default `''`) but this is independent of the model default.
Q: Do we want the same sort of behaviour for (forms) RangeFields?
(Possibly we do...?)
C.