我有兴趣将 django 的 ImageFileField 子类化以允许访问图像 IPTC 元数据,例如:
>>> from myapp.models import SomeModel
>>> obj = SomeModel.objects.all()[0] # or what have you
>>> obj.image.iptc['keywords']
('keyword','anotherkeyword','etc')
... docs say至 read over django's internal code ,我做到了;我试图生成一个有效的实现,但我不确定自己在做什么——我之前定义了自定义字段,但我无法为基于文件的字段提供样板设置。
我知道我需要定义一个 attr_class
和一个 descriptor_class
来让它工作。有没有人有一个简单的例子或建议,我可以从中开始?
从您的问题中不清楚:您是否尝试过这样的事情?
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
?
我是一名优秀的程序员,十分优秀!