【问题标题】:How to show data from django models whose boolean field is true?如何显示布尔字段为真的 django 模型的数据?
【发布时间】:2021-10-26 15:28:05
【问题描述】:
verified = models.BooleanField(default=False)

我只想在 Django 模型中显示其验证字段为 true 的前端对象。

【问题讨论】:

    标签: python django django-views django-templates


    【解决方案1】:

    有很多方法

    1. 您可以根据自己的观点处理此问题

    views.py

    modelList = modelname.objects.filter(verified=True)
    
    1. 您也可以在 HTML 上处理它

    views.py

    modelList = modelname.objects.all()
    

    html

    {% for models in modelList %}
    
        {% if models.verified == True %}
           # Your Code
        {% endif %}
    
    {% endfor %}
    

    【讨论】:

    • 不要,这会降低视图的效率:django-antipatterns.com/antipattern/… 特别是因为 Django 模板引擎不是那么快。
    • 我说有很多方法你是对的过滤器也可以使用,但我说的方法之一
    • 但总的来说这不是一个好方法。与渲染项目相比,用于数据库和 Django/Python 层之间通信的带宽可能是巨大的,而 Django 的渲染引擎一点也不快。通常如果有两种方法,并且一种方法比另一种方法更帕累托有效,那么讨论另一种方法通常是没有意义的。如果一个答案至少有一个比另一个答案更好的客观参数,那么它就是有效的。
    【解决方案2】:

    您使用以下内容过滤项目:

    MyModel.objects.filter(<strong>verified=True</strong>)

    使用MyModel 包含verified 字段的模型。

    【讨论】:

      【解决方案3】:

      您必须通过视图或 html 来实现这一目标

      第一次观看 您可以过滤模型以仅返回经过验证的对象

      name = modelname.objects.filter(verified=True)
      

      第二种方式 或者您可以在请求视图中该字段的所有对象时传入 html 在视图中

      name = modelname.objects.all() 
      

      然后在 html 中获取数据

      {% for name in models %}
      {% if name.verified == True %}
      then pass the object which are verified 
      {% else %}
      pass another data
      {% endif %}
      {% endfor %}
      

      我希望现在你明白我的意思了,如果你在实现这些代码时遇到任何错误,请告诉我

      【讨论】:

        猜你喜欢
        • 2019-09-03
        • 1970-01-01
        • 2015-03-27
        • 2010-12-19
        • 2016-01-01
        • 1970-01-01
        • 2013-11-16
        • 2018-11-20
        • 2022-10-05
        相关资源
        最近更新 更多