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

Posted

技术标签:

【中文标题】如何启用我的 html 页面以使用两个布尔字段值检查用户并使用“if”语句显示他们的数据?【英文标题】:How can I enable my html page to check the user with two boolean field value and display their data using the "if" statement? 【发布时间】:2020-08-17 01:13:33 【问题描述】:

所以我创建了一个帐户,我想显示该帐户的详细信息。因此,我使用布尔字段来规范 html 页面上每个帐户的数据,我不想使用过滤器,因为该应用程序具有我不想使其复杂化的特定功能。我创建了使用 BooleanFields 来规范数据的 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 and player.is_Type_B) %? 【参考方案1】:

由于您的操作顺序,您的代码运行不正确。从逻辑上考虑,如果条件% elif player.is_Type_A and player.is_Type_B % 预计会执行,那么这意味着逻辑上% if player .is_Type_A % 也应该执行(因为is_Type_A 是True)......但是你的双布尔值被包裹在elif 中,这意味着它将在它之前的条件失败时运行,但事实并非如此。

要完成这项工作,您可以: 1) 重新排序您的代码,让更复杂的条件先出现,以免使它们短路。

2) 嵌套您的条件以获得级联逻辑流。

例如:

1)

% 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 %

【讨论】:

以上是关于如何启用我的 html 页面以使用两个布尔字段值检查用户并使用“if”语句显示他们的数据?的主要内容,如果未能解决你的问题,请参考以下文章

字段启用禁用javascript不起作用

如何使用 django 表单/模型来表示字段之间的选择?

如何启用/禁用 HTML5 必填字段验证?

如何在页面加载时隐藏所有表单字段并在从下拉列表中选择时启用

如何编写我的 HTML 登录表单以显式启用 LastPass?

使用 Magento ORM 的布尔字段