Я хочу изменить способ, которым "+" показывают значок для внешнего ключа в администраторском сайте.
Я нашел, что виджет, который печатает код, RelatedFieldWidgetWrapper
это находится в django/contrib/admin/widgets.py
.
Таким образом, я записал свою версию этого класса, и я изменил render
функция.
Но теперь как я могу использовать его? Я имею в виду... в определении моей модели, делают я должен использовать formfield_overrides
таким образом?
formfield_overrides = {
models.ForeignKey: {'widget': customRelatedFieldWidgetWrapper},
}
Я думаю, что это не правильный путь, потому что тот виджет не является тем, которые управляют целым внешним ключом, но только "+" значок.Я неправ?
Большое спасибо.
Вам нужно будет создать пользовательские модификации для ModelAdmin и переопределить виджет там.
Пример кода:
#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