On Wed, Mar 9, 2016 at 3:09 PM, Johannes Hoppe <[email protected]> wrote: > We'll you can change the `default` form Field using > `django.db.models.Field.formfield`.
Do you mean that, for example, an app like django-select2 could provide the following model fields ? - Select2WidgetForeignKey, - Select2WidgetOneToOneField, - Select2MultipleWidgetManyToManyField, - HeavySelect2WidgetForeignKey, - HeavySelect2WidgetOneToOneField, - HeavySelect2MultipleWidgetManyToManyField Also, wouldn't that require overriding the complete model class to change the default widget for an external app ? Also, would it be possible to conditionally enable Select2 widgets depending whether select2 is in INSTALLED_APPS without changing the model class ? Or perhaps everybody would benefit from changing these hardcoded values into attributes ? > But that is actually the thing I don't like I think this needs to go: > https://github.com/django/django/blob/d5f89ff6e873dbb2890ed05ce2aeae628792c8f7/django/db/models/fields/__init__.py#L869-L905 If that goes, so should save_form_data and value_from_object, that's the first option I was talking about. I think we can still do that later. Changing the hardcoded defaults into instance attributes would still be useful when we do that. > > But at the end, I don't have a particular pain with all that. You can easily > write your own model form, that changes the behavior. If you feel like > changing it, go ahead, but I would welcome a removing the cross dependency. There's got to be code that couples db fields and form fields, perhaps it would help to move it around, but we'll also have to change it. Again, I think both solutions are good here: we don't have to choose one or another. When have the opportunity to do one before the other, which benefits to django's stability because moving .formfield() outside the model field is going to cause a lot of BC breaks in apps and projects. Thanks for sharing a bit of your time ! Best -- http://yourlabs.org Customer is king - Le client est roi - El cliente es rey. -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/django-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/CALC3KadmQM6TmKsabD3yf5_r5cqa0JiEe%2BHZph8reTRe0iO%2BCg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
