Реализация рабочих процессов в Django Admin - Django - PullRequest
1 голос
/ 04 августа 2010

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

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


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

Обстоятельство интегрирует это в административную панель.

Если у кого-то есть несколько мнений по этой теме, это было бы действительно здорово. =)

Ответы [ 2 ]

1 голос
/ 04 августа 2010

Некоторое время назад я завершил аналогичную функциональность.Вот что вам нужно сделать: создать модель статуса утверждения и иметь разные варианты утверждения, то есть каждый объект модели представляет свою стадию утверждения. Также у вас должна быть модель StatusHistory, которая отражает текущий статус вашей статьи (например)..

class Article(models.Model)
      title=models.CharField(max_length=32)
      body=models.TextField()

class ApprovalStatus(models.Model):
      name=models.CharField(max_length=32)
      alias=models.CharField(max_length=32,pk=True)

class StatusHistory(models.Model):
      status=models.ForeignKey(ApprovalStatus)
      article=models.ForeignKey(Article)
      current=models.BooleanField(default=True)

Таким образом, когда вы изменяете статус статьи в вашем администраторе, создается новый объект StatusHistory, а старому объекту присваивается переменная current = False.Этот подход кажется немного громоздким, но когда вы его реализуете, все, что вам нужно, легко попадает в ORM: история состояний - это просто список всех объектов, изменения в рабочем процессе включают только создание нового статуса утверждения и изменение ваших жестко запрограммированных подпрограмм потока состояний

0 голосов
/ 30 июля 2013

django-оборотень - именно то, что вы ищете (https://pypi.python.org/pypi/django-werewolf).

Проверьте пример приложения здесь (https://bitbucket.org/barseghyanartur/django-werewolf/src).

По любым вопросам и поддержке, свяжитесь со мной.

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