Как передать переменную в функцию из представления - PullRequest
0 голосов
/ 05 января 2020

Я использую SoftDeletableModel модель из django -model-utils , которая является абстрактной моделью базового класса с полем is_removed, которое отмечает записи, которые больше не будут использоваться , но хранятся в дБ по любой причине.

Он имеет следующую структуру:

class SoftDeletableModel(models.Model):

    is_removed = models.BooleanField(default=False)

    class Meta:
        abstract = True

    objects = SoftDeletableManager()
    all_objects = models.Manager()

    def delete(self, using=None, soft=True, *args, **kwargs):
        """
        Soft delete object (set its ``is_removed`` field to True).
        Actually delete object if setting ``soft`` to False.
        """
        if soft:
            self.is_removed = True
            self.save(using=using)
        else:
            return super().delete(using=using, *args, **kwargs)

В случае, если я действительно хочу удалить объект, а не установить is_removed=True, мне нужно добавить soft=False в процессе удаления.

Как мне go сделать это в представлении / шаблоне?

1 Ответ

0 голосов
/ 06 января 2020

Передайте soft=False в качестве ключевого аргумента метода удаления экземпляра:

your_object_instance.delete(soft=False)

Это можно сделать в функции просмотра или в любом другом файле python в вашем проект, в котором вы можете получить доступ к этому экземпляру объекта.

...