Django: сигнал post_save и объект запроса - PullRequest
2 голосов
/ 27 ноября 2010

Вот два моих модельных класса:

class DashboardVersion(models.Model):
    name = models.CharField(_("Dashboard name"),max_length=100)
    description = models.TextField(_("Description/Comment"),null=True,blank=True)
    modifier = models.ForeignKey(User,editable=False,related_name="%(app_label)s_%(class)s_modifier_related")
    modified = models.DateField(editable=False)

class Goal(models.Model):
    goal = models.TextField(_("Goal"))
    display_order = models.IntegerField(default=99999)
    dashboard_version = models.ForeignKey(DashboardVersion)

Когда цель редактируется, добавляется, удаляется и т. Д., Я хочу изменить DashboardVersion.modifier на пользователя, который его изменил, и DashboardVersion.modifed до текущей даты.

Я пытаюсь реализовать это с помощью сигналов. Похоже, что сигнал post_save не содержит request. Или я могу получить его откуда-то или мне нужно создать собственный сигнал?

Или я должен сделать что-то совершенно другое?

Спасибо! :-) Eric

1 Ответ

1 голос
/ 27 ноября 2010

Я бы сказал, что самое простое, что нужно сделать, это просто обновить DashboardVersion в представлении, которое обрабатывает обновление Goal. Если у вас есть несколько представлений в одном модуле, которые обрабатывают Goal обновления, вы можете выделить логику обновления DashboardVersion в отдельную функцию.

Если вы не можете использовать сигналы, вы, вероятно, можете взломать что-нибудь вместе с промежуточным ПО локальных потоков, но я бы сказал, что самый простой подход обычно лучше.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...