在FOR Django中过滤IF

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (44)

我正在Django 2.0课程中开发一个应用程序,每个课程包含模块,显然我有用户。

model.py

Class Course(models.Model):
    name = models.TextField()
    .....

Class Module(models.Model):
    name = models.TextField()
    containt = models.TextField()
    .....

Class UserCourse(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    course = models.ForeignKey(Course, on_delete=models.CASCADE)
    flat = models.BooleanField(default=False)


Class UserModule(models.Model):
    user = models.ForeignKey(User, on_delete=models.CASCADE)
    module = models.ForeignKey(Module, on_delete=models.CASCADE)

当用户输入模块时,在UserModule模型中创建注册表以知道它已经进入模块。

我的想法是在模板中显示课程的所有模块,但是如果用户已经使该模块禁用该选项,则允许输入该模块。

views.py

def course(request, idCourse):
   course = Course.objects.get(pk=idCourse)
   module = UserModule.objects.filter(user = User.objects.get(pk=request.user.id),module__course=course.id)
return render(request, 'course.html',{'course':course,'module':module})

此查询已发送到课程模板

{% for x in course.module_set.all %}
    {% if x in module %}
       <i class="fa fa-check-circle"></i>
    {% else %}
       <a href="module"><i class="fa fa-check-circle"></i></a>
    {% endif %}
{% endfor %}
提问于
用户回答回答于

在模板中更改

{% if x in y module %}

{% if x in module %}

扫码关注云+社区

领取腾讯云代金券