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