Вы должны изменить свой код на:
class Image(models.Model):
name = models.CharField(max_length=150)
desc = models.TextField(max_length=400)
resource = models.ImageField(upload_to='imgs/generic/%Y/%m/%d')
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField(db_index=True)
object = generic.GenericForeignKey('content_type','object_id')
class Meta:
unique_together = (('resource', 'content_type', 'object_id'),)
def __unicode__(self):
return u'%s [%s]' % (self.object, self.resource)
class ImageInline(generic.GenericTabularInline):
model = Image
class MyModelAdmin(admin.ModelAdmin):
inlines = [
ImageInline,
]
Таким образом, когда вы идете, чтобы добавить / изменить MyModel в админке, вы можете добавлять изображения как встроенные.
ОБНОВЛЕНИЕ:
Решение с полем браузера файлов:
class Image(models.Model):
name = models.CharField(max_length=150)
desc = models.TextField(max_length=400)
resource = FileBrowseField("Image", max_length=200, directory="imgs/generic/%Y/%m/%d", extensions=['.jpg', '.gif', '.png'], format='Image')
content_type = models.ForeignKey(ContentType)
object_id = models.PositiveIntegerField(db_index=True)
object = generic.GenericForeignKey('content_type','object_id')
class Meta:
unique_together = (('resource', 'content_type', 'object_id'),)
def __unicode__(self):
return u'%s [%s]' % (self.object, self.resource)
class ImageInline(generic.GenericTabularInline):
model = Image
class MyModelAdmin(admin.ModelAdmin):
inlines = [
ImageInline,
]
Более подробную информацию о поле обозревателя файлов можно найти здесь: http://code.google.com/p/django-filebrowser/wiki/installationfilebrowsefield