ImageField가있는 모델과 양식 (forms.ModelForm)이 있습니다. 이 모델은 유사합니다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)
.
.
수행 폼 : forms.ClearableFileInput()가 FileFields 및 ImageFields의 기본 위젯이기 때문에
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())
형태의 마지막 줄은 주석. 이 양식 템플릿에있는 이미지로 표시되는 기존의 레코드를 편집하는 데 사용됩니다 이제
은 다음과 같습니다
Currently: <image_url>
Change: <browse_button>
나는 '현재'텍스트 레이블과 '변화'대신을 변경하려면 image_url을 보여 주며 이미지를 보여주고 싶습니다.
물론 'site-packages/django/forms/widgets.py'에있는 'ClearableFileInput (FileInput)'코드를 복사하고 수정할 수는 있지만이를 수행하는 방법인지 궁금합니다.
도움이나 의견을 보내 주시면 감사하겠습니다.
지금 나는의 코드 '클래스 ClearableFileInput (fileinput 함수)'나는 템플릿 양식{% if business.business_image %}
<img src="{{ business.business_image.url }}" title="{{ business.business_name}}" />
{% endif %}
예 emplate하지만 내가 언급 한 2 가지 항목 : 현재 : 및 변경 : 은 여전히 템플릿에 있습니다. –
Henri