Django: override RelatedFieldWidgetWrapper
django, django-admin, django-forms
Solution
You would need to create custom ModelForm for ModelAdmin and override widget there.
Example code:
#forms.py
class CustomForm(forms.ModelForm):
user = forms.ModelChoiceField(queryset=User.objects.all(), widget=yourCustomWidget)
class Meta:
model = MyModel
#admin.py
class MyModelAdmin(admin.ModelAdmin):
form = CustomForm
Problem
I want to change the way that the "+" icon for the foreign key in the admin site is shown. I found that the widget that prints the code is `RelatedFieldWidgetWrapper` that is in `django/contrib/admin/widgets.py`. So I wrote my version of this class and I changed its `render` function. But now how can I use it? I mean... in the definition of my model do I have to use the `formfield_overrides` in this way? ``` formfield_overrides = { models.ForeignKey: {'widget': customRelatedFieldWidgetWrapper}, } ``` I think that this is not the right way, because that widget is not the one that manage the whole foreign key, but only the "+" icon. Am I wrong? Thanks a lot.