0

I have a table with ImageField and I want to show an image thumb line near the choose file button before the user submits in form,,

when the user picks the image the link is already provided like this :

enter image description here

and I want to catch the path to the file ( add_user_but.png) after use picks it .. how to do it !?

I know how to do it in normal plain HTML like it is in the question :

Show an image preview before upload

but in Django here is how my models.py forms.py and HTML files look like :

models.py

class Item(models.Model):
    # custom validators
    alphanumeric = RegexValidator(r'^[0-9a-zA-Z]*$', 'Only alphanumeric characters are allowed.')

    # fields
    dress_name = models.ForeignKey(Name, on_delete=models.DO_NOTHING, blank=False, verbose_name='نوع الفستان',)
    dress_rate = models.ForeignKey(Rate, on_delete=models.DO_NOTHING, blank=False, verbose_name='تصنيف الفستان',)
    dress_size = models.ForeignKey(Size, on_delete=models.DO_NOTHING, verbose_name='مقاس الفستان', blank=False)
    dress_color = models.CharField(max_length=50, verbose_name='لون الفستان', blank=False)
    dress_description = models.TextField(max_length=800, verbose_name=' وصف إضافى للفستان', blank=False)
    dress_image1 = models.ImageField(upload_to='documents/%Y/%m/%d', null=False, blank=False, verbose_name='الصورة الأساسية للفستان',
                                     help_text='لا يمكنك تركها فارغة', default="img/default_dress_image.png")
    dress_image2 = models.ImageField(upload_to='documents/%Y/%m/%d', null=False, blank=False, verbose_name='صورة إضافية ', default="img/default_dress_image.png")
    dress_image3 = models.ImageField(upload_to='documents/%Y/%m/%d', null=False, blank=False, verbose_name='صورة إضافة ', default="img/default_dress_image.png")
    dress_image4 = models.ImageField(upload_to='documents/%Y/%m/%d', null=False, blank=False, verbose_name='صورة إضافة ', default="img/default_dress_image.png")
    dress_image5 = models.ImageField(upload_to='documents/%Y/%m/%d', null=False, blank=False, verbose_name='صورة إضافة ', default="img/default_dress_image.png")
    dress_action = models.ForeignKey(Action, on_delete=models.DO_NOTHING, verbose_name='الفستان معروض لل ',
                                     help_text='للبيع او للإيجار ', blank=False)
    dress_price = models.IntegerField(default=1, verbose_name='السعر', blank=False)
    dress_mobile = models.CharField(max_length=20, validators=[alphanumeric], verbose_name='رقم الهاتف ', blank=False)
    created_by = models.CharField(max_length=250,)
    created_username = models.CharField(max_length=250, default='unknown')
    created_at = models.DateTimeField(auto_now=True)
    dress_active = models.BooleanField(default=False)
    dress_special = models.BooleanField(default=False)
    dress_town = models.ForeignKey(Town, on_delete=models.DO_NOTHING, verbose_name='المحافظة', blank=False)

forms.py

class AddDressForm(ModelForm):
    class Meta:
        model = Item
        exclude = ['created_by', 'created_at', 'dress_active', 'dress_special', 'created_username']

HTML

  <form action="" method="post" name="AddDressForm" align="right" enctype="multipart/form-data">
    {% csrf_token %}
    {{ add_dress_form.non_field_errors }}
    {% for field in add_dress_form %}
        <span style="color: red; ">{{ field.errors }}</span>
        <div class="row">
        <div class="col">
        {{ field.label_tag }}&nbsp;{% if field.field.required %}<span style="color: red; font-size: xx-small; ">مطلوب</span> {% endif %}
            </div>
            <div class="col" align="right">
            {{ field }}
            </div>
        </div>
        <br>
    {% endfor %}
     <input type="submit" class="btn btn-success" style="width: 100px;" value="إضافة" />
            </form>
Ahmed Wagdi
  • 3,913
  • 10
  • 50
  • 116
  • Possible duplicate of [Show an image preview before upload](https://stackoverflow.com/questions/14069421/show-an-image-preview-before-upload) – Satendra Jun 20 '18 at 15:10
  • it is not duplicated , i edit my question – Ahmed Wagdi Jun 20 '18 at 15:25
  • But that is not the link to the image, but only its name? P.S. You have added too much information about your model, which is unnecessary for answering this question. It is much easier to answer if u delete all not relevant fields and another info to your question. – Chiefir Jun 20 '18 at 19:25

0 Answers0