我真的被一个Django查询困住了,希望你有几分钟时间来帮我弄清楚。在
我有一个非常简单的模型:class Task(models.Model):
# a tuple representing a specific item to be searched for a specific URL
instructions = models.TextField()
ASSIGNMENT_STATUS_CHOICES = (
( 'a', 'assigned' ),
( 'c', 'submitted for review' ),
( 'f', 'finished' ),
( 'r', 'rejected' ),
)
class Assignment(models.Model):
# the overall container representing a collection of terms for a page found
# by a user
user = models.ForeignKey(User)
task = models.ForeignKey(Task, related_name='assignments')
status = models.CharField(max_length=1, choices=ASSIGNMENT_STATUS_CHOICES, default='a')
我要做的是随机选择一个任务,该任务的状态少于N个!=“r”。换句话说,我要确保每个任务成功完成N次,所以如果一个worker请求一个任务,那么它需要一个任务少于N个的任务处于可能导致完成的状态。在
我只是完全不知道该查询会返回这样的任务。对于给定任务,我可以测试:
^{pr2}$
如果这是真的,那就是一个候选人。但我该如何质疑呢任务.对象它在单个数据库查询中返回所有候选项,以便我可以随机选择一个:Task.objects..order_by('?')[0]
任何帮助都将不胜感激!在