Невозможно перезаписать значение переменной в сигнале django - PullRequest
0 голосов
/ 31 октября 2019

Почему, когда я устанавливаю active_template = home.template в сигнале django, все выглядит нормально, пока я снова не нажму кнопку "сохранить" в панели администратора. Затем переменная active_template снова устанавливается на 0. Не следует ли перезаписывать, когда я снова запускаю сигнал? Я пробую это с нормальной функцией, и это работает, так что я думаю, проблема в сигнале.

модель:

class Homepage(models.Model):

    choice_dict = {'one': 1, 'two': 2, 'three': 3, 'four': 4, 'five': 5}

    TEMPLATE_TYPE = [
        (choice_dict['one'], '1'),
        (choice_dict['two'], '2'),
        (choice_dict['three'], '3'),
        (choice_dict['four'], '4'),
        (choice_dict['five'], '5'),
    ]

    template = models.IntegerField(choices=TEMPLATE_TYPE, null=True, blank=True)
    content = RichTextUploadingField(null=True, blank=True)

сигнал

def default_value(sender, instance, **kwargs):
    test = ['test','test1','test2']
    home = Homepage.objects.first()
    active_template = 0
    if home.template and active_template != home.template:
        Homepage.objects.filter(pk=2).update(content=test[home.template])
        active_template = home.template

post_save.connect(default_value, sender=Homepage)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...