Закачки django-filer автоматически создают экземпляры модели
Вот мой app.model
from django.db import models
from filer.fields.image import FilerImageField
class Item(models.Model):
...
image = FilerImageField()
...
Я хотел бы взломать процесс загрузки django-filer и автоматически создавать экземпляры Item для каждого изображения, получаемого django-filer.
У 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 ответ
Решение
Файлы в django-filer являются обычными моделями. FilerImageField является ForeignKey для filer.models.Image под капотом. Таким образом, вы можете прослушать сигнал post_save модели File или Image и создать там свой экземпляр.
Сигнальные документы: https://docs.djangoproject.com/en/dev/ref/signals/