Hello
У меня есть следующая модель:
class Participation(models.Model):
workflow_activity = models.ForeignKey('WorkflowActivity')
user = models.ForeignKey(User)
role = models.ForeignKey(Role)
current = models.BooleanField()
Это таблица «многие ко многим».
Я хочу отфильтровать экземпляры workflow_activity
, которые имеют одно из следующих условий:
- Пользователи не назначены, т. Е. Нет записей для этого workflow_activity в таблице участия.
- Нет текущих активных пользователей, т. Е. Где все строки для workflow_activity в таблице участия имеют
current==False
Помощь в построении запроса будет высоко ценится!
EDIT:
Привет всем, спасибо за ответы. Я предполагаю, что я, вероятно, подхожу к этой вещи неправильно. Мое требование заключается в том, что я создаю своего рода систему тикетов, которая имеет функцию автоматического назначения, которая назначает пользователей тикетам на основе некоторой логики выбора. Я запускаю функцию назначить как периодическое задание (используя сельдерей), но для этого мне нужно выбрать билеты, которые в настоящее время не назначены для текущего состояния заявки. Текущее логическое значение используется, чтобы отметить, назначен ли конкретный пользователь текущему состоянию заявки.
Есть идеи / мысли по реализации этого?
Edit2
Вот тот, о котором я подумал:
class WorkflowActivity(models.Model):
...
...
assigned_to = models.ManytoManyField('Participation') # older table without the current field
current = models.ManytoManyField('Current')
class Current(models.Model):
participant = models.ForeignKey('Participation')
Достаточно хреновый, я знаю, но это то, что я мог придумать, какие-нибудь другие варианты?