私の知る限り、django モデルにフィールドを動的に注入するのは簡単なことではありません。試してみたい場合は、これが出発点になります。
同様の投稿がここにあります。
http://www.sixpearls.com/blog/2013/feb/django-class_prepared-signal/
from django.db.models.signals import class_prepared
def add_image_fields(sender, **kwargs):
"""
class_prepared signal handler that checks for the model massmedia.Image
and adds sized image fields
"""
if sender.__name__ == "Image" and sender._meta.app_label == 'massmedia':
large = models.ImageField(upload_to=".", blank=True, verbose_name=_('large image file'))
medium = models.ImageField(upload_to=".", blank=True, verbose_name=_('medium image file'))
small = models.ImageField(upload_to=".", blank=True, verbose_name=_('small image file'))
large.contribute_to_class(sender, "large")
medium.contribute_to_class(sender, "medium")
small.contribute_to_class(sender, "small")
class_prepared.connect(add_image_fields)
基本的に、これらのフィールドを作成する関数を添付します。
class_prepared シグナルをキャッチしてすべてのフィールドを一覧表示できます。画像フィールドの場合は、クラス image_field_thumbnail に貢献します
モデルに属するすべてのフィールドを取得するには、get_fieldsを使用できます。