Oh, I see what's going on.  I marked the field as readonly.  Apparently the 
widget only gets created if the field is editable (I guess that makes sense).



On Apr 25, 2012, at 1:28 PM, Roy Smith wrote:

> Ooops, forgot to mention, I'm using django 1.4.
> 
> 
> On Apr 25, 2012, at 12:51 PM, Roy Smith wrote:
> 
>> I'm trying to get the admin to give me a thumbnail for an ImageForm.  
>> Following the suggestion at http://djangosnippets.org/snippets/1580/, I've 
>> got the following code:
>> 
>> from django import forms
>> from django.contrib import admin
>> from django.db import models
>> from django.utils.safestring import mark_safe
>> 
>> class AdminImageWidget(forms.FileInput):
>>     def __init__(self, attrs={}):
>>         assert 0
>>         super(AdminImageWidget, self).__init__(attrs)
>> 
>>     def render(self, name, value, attrs=None):
>>         output = []
>>         if value and hasattr(value, "url"):
>>             output.append(('<a target="_blank" href="%s">'
>>                            '<img src="%s" style="height: 28px;" /></a> '
>>                            % (value.url, value.url)))
>>         output.append(super(AdminImageWidget, self).render(name, value, 
>> attrs))
>>         return mark_safe(u''.join(output))
>> 
>> class ImageVersionAdmin(admin.ModelAdmin):
>>     readonly_fields = ('image',
>>                        'data')
>>     formfield_overrides = {
>>         models.ImageField: {'widget': AdminImageWidget,
>>                             'label': 'My Label',},
>>         }
>> 
>> admin.site.register(ImageVersion, ImageVersionAdmin)
>> 
>> The problem is, I'm still getting the standard admin display.  I stuck the 
>> "assert 0" in AdminImageWidget.__init__() just to prove that it's never 
>> being called.  What magic am I missing?
>> 
>> My model looks like:
>> 
>> class ImageVersion(Model):
>>     image = ForeignKey(Image)
>>     data = ImageField(upload_to="images/foo")
>> 
>> ---
>> Roy Smith
>> r...@panix.com
>> 
>> 
>> 
> 
> 
> ---
> Roy Smith
> r...@panix.com
> 
> 
> 


---
Roy Smith
r...@panix.com



-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to 
django-users+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/django-users?hl=en.

Reply via email to