Django ModelForm ImageField

前端 未结 3 754
鱼传尺愫
鱼传尺愫 2020-12-16 06:51

I have a model and a form (forms.ModelForm) in which I have an ImageField. The model resembles:

class Business(models.Model):
    business_name = models.Char         


        
3条回答
  •  独厮守ぢ
    2020-12-16 07:38

    This is my version of an imageInput that shows the image and doesn't allow for clearing the image

    Just have to specify in the form class that the field has widget=NonClearableImageInput()

    from django.forms.widgets import FileInput
    from django.utils.html import conditional_escape
    from django.utils.safestring import mark_safe
    
    class NonClearableImageInput(FileInput):
        def render(self, name, value, attrs=None):
            template = '%(input)s'
            data = {'input': None, 'url': None}
            data['input'] = super(NonClearableImageInput, self).render(name, value, attrs)
    
            if hasattr(value, 'url'):
                data['url'] = conditional_escape(value.url)
                template = '%(input)s '
    
            return mark_safe(template % data)
    

提交回复
热议问题