django-filer上传会自动创建模型的实例

时间:2013-07-27 12:15:36

标签: python django django-filer

这是myapp.model

from django.db import models
from filer.fields.image import FilerImageField

class Item(models.Model):
    ...
    image = FilerImageField()
    ...

我想在django-filer上传过程的中间进行攻击,并为django-filer收到的每个图像自动创建Item的实例。

django-filer没有传统的urls.py来覆盖指向自定义视图的单个url模式。我该如何处理?

修改

感谢stefanfoulis的提示,我最终得到了这段代码:

from django.db import models
from django.db.models.signals import post_save
from django.dispatch import receiver
from filer.fields.image import FilerImageField
from filer.models import Image

class Item(models.Model):
    ...
    image = FilerImageField()
    ...

    @receiver(post_save, sender=Image)
    def filer_signal(sender, instance, created, **kwargs):
        Item.objects.create(
            ...
            image=instance,
            ...).save()
        return

1 个答案:

答案 0 :(得分:1)

django-filer中的文件只是常规模型。 FilerImageField是一个引擎盖下的filer.models.Image的ForeignKey。因此,您可以收听文件或图像模型的post_save信号,并在那里创建您的实例。

信号文档:https://docs.djangoproject.com/en/dev/ref/signals/#post-save