Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/meteor/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使我的html页面能够使用两个布尔字段值检查用户,并使用“if”语句显示他们的数据?_Python_Django_Django Models_Django Templates_Jinja2 - Fatal编程技术网

Python 如何使我的html页面能够使用两个布尔字段值检查用户,并使用“if”语句显示他们的数据?

Python 如何使我的html页面能够使用两个布尔字段值检查用户,并使用“if”语句显示他们的数据?,python,django,django-models,django-templates,jinja2,Python,Django,Django Models,Django Templates,Jinja2,因此,我创建了一个帐户,我想显示该帐户的详细信息。所以我使用了布尔字段来调节html页面上每个帐户的数据,我不想使用过滤器,因为应用程序具有特定的函数,我不想让它复杂化。我创建了Account_checker模型,该模型使用布尔字段来管理数据。但是,如果一个帐户有两个BooleanField=True,如何在HTML页面上显示基于这两个BooleanField=True的两个信息 models.py class Account_checker(models.Model): is_Type

因此,我创建了一个帐户,我想显示该帐户的详细信息。所以我使用了布尔字段来调节html页面上每个帐户的数据,我不想使用过滤器,因为应用程序具有特定的函数,我不想让它复杂化。我创建了Account_checker模型,该模型使用布尔字段来管理数据。但是,如果一个帐户有两个BooleanField=True,如何在HTML页面上显示基于这两个BooleanField=True的两个信息

models.py
class Account_checker(models.Model):
    is_Type_A=BooleanField(default=False)
    is_Type_B=BooleanField(default=False)
    is_Type_C=BooleanField(default=False)

html page
{% for player in players %}
    {% if player .is_Type_A %}
       display type A data
    {% elif player.is_Type_B %}
        display type B data
    {% elif player.is_Type_C %} 
        display type C data
    {% elif player.is_Type_A and player.is_Type_B %} #This code isn't working
        display type A data and type B data
    {% elif player.is_Type_B and player.is_Type_C %} #This code isn't working
        display type B data and type C data
   {% elif player.is_Type_B and player.is_Type_C and player.is_Type_C %} #This code isn't working
        display type B data and type C data
    {% endif %}
{% endfor %}

由于您的操作顺序,您的代码工作不正确。从逻辑上考虑,如果条件{%elif player.is_Type_A和player.is_Type_B%}被期望执行,那么这意味着逻辑上{%if player.is_Type_A%}也应该执行,因为is_Type_A是真的。。。但是您的双布尔值被包装在一个elif中,这意味着只有在它之前的条件失败时它才会运行,而事实并非如此

要实现此功能,您可以: 1重新排列您的代码,让更复杂的条件放在第一位,以免使它们短路

2嵌套您的条件以具有级联逻辑流

例如:

一,


您是否尝试过在条件之间添加括号?我的意思是{%elif player.is_Type_A和player.is_Type_B%}?
{% for player in players %}
    {% if player.is_Type_A and player.is_Type_B and player.is_Type_C %}
        display type A, type B data and type C data
    {% elif player.is_Type_B and player.is_Type_C %}
        display type B data and type C data
    {% elif player.is_Type_A and player.is_Type_B %}
        display type A data and type B data
    {% elif player.is_Type_C %} 
        display type C data
    {% elif player.is_Type_B %}
        display type B data
    {% elif player.is_Type_A %}
       display type A data
    {% endif %}
{% endfor %}