Как использовать наследование модели Django с сигналами?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как использовать наследование модели Django с сигналами?

Сообщение Anonymous »

У меня есть несколько уровней наследования моделей в Django:

Код: Выделить всё

class WorkAttachment(models.Model):
""" Abstract class that holds all fields that are required in each attachment """
work            = models.ForeignKey(Work)
added           = models.DateTimeField(default=datetime.datetime.now)
views           = models.IntegerField(default=0)

class Meta:
abstract = True

class WorkAttachmentFileBased(WorkAttachment):
""" Another base class, but for file based attachments """
description     = models.CharField(max_length=500, blank=True)
size            = models.IntegerField(verbose_name=_('size in bytes'))

class Meta:
abstract = True

class WorkAttachmentPicture(WorkAttachmentFileBased):
""" Picture attached to work """
image           = models.ImageField(upload_to='works/images', width_field='width', height_field='height')
width           = models.IntegerField()
height          = models.IntegerField()
Существует множество различных моделей, унаследованных от WorkAttachmentFileBased и WorkAttachment. Я хочу создать сигнал, который будет обновлять поле Attachment_count для родительской работы при создании вложения. Было бы логично думать, что сигнал предназначен для родительского отправителя (

Код: Выделить всё

WorkAttachment
) также будет работать для всех унаследованных моделей, но это не так. Вот мой код:

Код: Выделить всё

@receiver(post_save, sender=WorkAttachment, dispatch_uid="att_post_save")
def update_attachment_count_on_save(sender, instance, **kwargs):
""" Update file count for work when attachment was saved."""
instance.work.attachment_count += 1
instance.work.save()
Есть ли способ заставить этот сигнал работать для всех моделей, унаследованных от WorkAttachment?

Python 2.7, пре-альфа Django 1.4

P.S. Я попробовал одно из решений, найденных в сети, но оно мне не помогло.

Подробнее здесь: https://stackoverflow.com/questions/779 ... th-signals
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Как использовать @ViewChild с сигналами и эффектом () в угловой?
    Anonymous » » в форуме Html
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Создание отмены/восстановления с помощью команды PySide6 с сигналами блока
    Anonymous » » в форуме Python
    0 Ответы
    19 Просмотры
    Последнее сообщение Anonymous
  • Найти сдвиг во времени между двумя похожими сигналами
    Anonymous » » в форуме Python
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous
  • Как вручить отношения между двумя сигналами с помощью LinkedSignals в Angular V20?
    Anonymous » » в форуме Html
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • Как обернуть объект содержит метрическую единицу, например Длина = 10 м с угловыми сигналами?
    Anonymous » » в форуме Html
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»