Подклассы Django ImageFileField - PullRequest
       12

Подклассы Django ImageFileField

1 голос
/ 20 октября 2010

Я заинтересован в создании подкласса django ImageFileField для предоставления доступа к метаданным IPTC изображения, что-то вроде:

>>> from myapp.models import SomeModel
>>> obj = SomeModel.objects.all()[0] # or what have you
>>> obj.image.iptc['keywords']
('keyword','anotherkeyword','etc')

... документы говорят до прочитали внутренний код django , что я и сделал; Я пытался создать работающую реализацию, и я не уверен, что я делаю - я уже определил пользовательские поля, но не могу придумать шаблонную настройку для поля на основе файлов.

Я знаю, что мне нужно определить attr_class и descriptor_class, чтобы это работало. У кого-нибудь есть простой пример или предложение, с которого я мог бы начать?

Ответы [ 2 ]

6 голосов
/ 28 октября 2010

Непонятно из твоего вопроса: ты пробовал что-то подобное?

class ImageMetadataMixin(object):
    """Mixin can be added to any image file"""
    @property
    def iptc(self):
        """Or something like this"""

class ImageWithMetadataFieldFile(ImageMetadataMixin, ImageFieldFile):
    pass

class ImageWithMetadataField(ImageField):
    attr_class = ImageWithMetadataFieldFile

Думаю, это все, что нужно.Почему вы думаете, что нужно переопределить descriptor_class?

1 голос
/ 08 августа 2011

ОБНОВЛЕНИЕ: Я понял это - частично благодаря ответу @valya.Пример успешной реализации можно найти в моей ветке django-imagekit:

https://github.com/fish2000/django-imagekit/blob/icc-develop/imagekit/modelfields.py

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...