У меня есть модель и форма (forms.ModelForm), в которой у меня есть ImageField. Модель напоминает:Django ModelForm ImageField
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)
.
.
сопутствующая форма:
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())
Последняя строка в форме комментируется, потому что forms.ClearableFileInput() является виджет по умолчанию для FileFields и ImageFields.
Теперь, когда эта форма используется для редактирования существующей записи изображения в шаблоне отображаются следующим образом:
Currently: <image_url>
Change: <browse_button>
Я хотел бы изменить текстовые метки «В настоящее время» и «Change» и вместо показать image_url Я хотел бы показать изображение.
Конечно, я могу скопировать и изменить код класса ClearableFileInput (FileInput) ', найденного в' site-packages/django/forms/widgets.py ', но мне интересно, если это способ сделать это.
Любая помощь или предложение оценены.
Теперь я посмотрел на код «класса ClearableFileInput (FileInput)»
Да, который отобразил бы изображение в t эмблема, но 2 пункта, о которых я упоминал, в настоящее время: и Изменить: все равно будет в шаблоне. –
Henri