我有一个模特:
class Lesson(models.Model):
...
required_lessons = models.ManyToMany('self')
...
当用户通过课程时,我在表格中创建一条记录:
class UserLesson(models.Model):
user = models.ForeignKey(User)
lesson = models.ForeignKey('courses.Lesson')
is_passed = models.BooleanField(default=False)
created = models.DateTimeField(auto_now_add=True)
现在,我如何检查用户是否可以访问课程?
答案 0 :(得分:0)
这样的事情:
def has_access(user, lesson): completed = user.userlesson_set.filter(is_passed=True).values_list("lesson", flatten=True) return all([l in completed for l in lesson.required_lessons])
PS:未经测试,可能需要进行调整