ImageField's “Currently” and “Clear” Sometimes Don't Appear
|Reported by:||Owned by:||nobody|
|Has patch:||no||Needs documentation:||no|
|Needs tests:||no||Patch needs improvement:||no|
I have found scenarios where an ImageField's “Currently” and “Clear” widgets don't appear. Here are the instructions to reproduce the scenarios:
Create an app called "imagefield_bug" and paste this in its "models.py" file:
from django.db import models class ImageFieldBug(models.Model): required_text_field = models.CharField(max_length=100) optional_image = models.ImageField(upload_to='images/', blank=True, null=True) def __unicode__(self): return self.required_text_field
Add the "imagefield_bug" app to your project's INSTALLED_APPS. Make sure "django.contrib.admin" is also in INSTALLED_APPS while you're at it.
Make sure the admin lines in "urls.py" are uncommented.
Run these commands:
printf "from django.contrib import admin\nfrom models import ImageFieldBug\n\nadmin.site.register(ImageFieldBug)\n" > imagefield_bug/admin.py python manage.py syncdb python manage.py runserver
Go to the following URL, log in, fill out both fields correctly, and click "Save and continue editing":
Now you should see the "Currently" and "Clear" widgets. Choose a non-image to upload and then click "Save". Now the "Currently" and "Clear" widgets are gone, potentially misleading the user into thinking the original image is gone forever.
Now click your browser's "Back" button, refresh the page, blank out the "Required text field" field, and either check the "Clear" checkbox or choose a valid image to upload. After that, click "Save". Again, the "Currently" and "Clear" widgets will be gone.
See this django-developers discussion for more information.