Django ModelForm ImageField

Ich habe ein Modell und ein Formular (forms.ModelForm), in dem ich ein ImageField habe. Das Modell ähnelt:

class Business(models.Model):
    business_name = models.CharField(max_length=128)
    .
    .
    business_image = ImageField(
        max_length=128, 
        upload_to=upload_business_image_handler,
        height_field='business_image_height',
        width_field='business_image_width'
        )
    business_image_height = models.IntegerField(blank=True, null=True)
    business_image_width = models.IntegerField(blank=True, null=True)
    .
    .

Das beiliegende Formular:

class BusinessForm(forms.ModelForm):
    def __init__(self, data=None, files=None, branch_list = None, country_list = None, *args, **kwargs):
        super(BusinessForm, self).__init__(data, *args, **kwargs)
        # create the MultipleChoiceField choice_list based on language
        self.fields['branch'].choices = branch_list
        self.fields['country'].choices = country_list
        self.postdata = data
        self.files = files

    business_name = forms.CharField(widget=forms.TextInput(attrs={'size':'50', 'class': 'address'}), required=True)

    #business_image = forms.ImageField(widget=forms.ClearableFileInput())

Die letzte Zeile im Formular ist auskommentiert, da forms.ClearableFileInput () das Standardwidget für FileFields und ImageFields ist.

Wenn dieses Formular nun zum Bearbeiten eines vorhandenen Datensatzes verwendet wird, wird das Bild in der Vorlage wie folgt angezeigt:

Currently: <image_url>
Change: <browse_button>

Ich möchte die Beschriftungen "Aktuell" und "Ändern" ändern und anstelle der image_url das Bild anzeigen.

Natürlich kann ich den Code der 'Klasse ClearableFileInput (FileInput)' aus 'site-packages / django / forms / widgets.py' kopieren und ändern, aber ich frage mich, ob dies der Weg ist, dies zu erreichen.

Jede Hilfe oder Anregung wird geschätzt.

Jetzt habe ich mir den Code der 'Klasse ClearableFileInput (FileInput)' angesehen

Antworten auf die Frage(3)

Ihre Antwort auf die Frage