Python 从django模板中删除none文件

Python 从django模板中删除none文件,python,django,Python,Django,我用以下模型创建了一个django模板 Models.py class MaterialRequest(models.Model): owner = models.ForeignKey(Client, on_delete=models.CASCADE, related_name='allotment_sales') product1 = models.CharField(max_length=500,default=0,blank=True,null=True) pro

我用以下模型创建了一个django模板

Models.py

class MaterialRequest(models.Model):
    owner = models.ForeignKey(Client, on_delete=models.CASCADE, related_name='allotment_sales')

    product1 = models.CharField(max_length=500,default=0,blank=True,null=True)
    product1_quantity = models.IntegerField(default=0,blank=True,null=True)

    product2 = models.CharField(max_length=500,default=0, blank=True,null=True)
    product2_quantity = models.IntegerField(default=0,blank=True,null=True)

    product3 = models.CharField(max_length=500,default=0, blank=True,null=True)
    product3_quantity = models.IntegerField(default=0,blank=True,null=True)

    product4 = models.CharField(max_length=500,default=0, blank=True,null=True)
    product4_quantity = models.IntegerField(default=0,blank=True,null=True)

    product5 = models.CharField(max_length=500,default=0, blank=True,null=True)
    product5_quantity = models.IntegerField(default=0,blank=True,null=True)

    product6 = models.CharField(max_length=500,default=0, blank=True,null=True)
    product6_quantity = models.IntegerField(default=0,blank=True,null=True)

    product7 = models.CharField(max_length=500,default=0, blank=True,null=True)
    product7_quantity = models.IntegerField(default=0,blank=True,null=True)

    product8 = models.CharField(max_length=500,default=0, blank=True,null=True)
    product8_quantity = models.IntegerField(default=0,blank=True,null=True)
我试着用这个视图在模板上显示这些数据

def load_salesorder(request):
    so_id = request.GET.get('sales_order')
    s_o = MaterialRequest.objects.filter(pk=so_id)
    print("kits=========",s_o)
    return render(request, 'allotment_so.html', {'sales_order': s_o})
HTML


产品短代码
产品数量
{销售订单中i的%u%}
{{i.product1}}
{i.product1_数量}
{{i.product2}
{i.product2_数量}
{{i.product3}
{i.product3_数量}
{{i.product4}
{i.product4_数量}
{{i.product5}}
{i.product5_数量}
{{i.product6}
{{i.product6_数量}
{{i.product7}
{i.product7_数量}
{{i.product8}
{i.product8_数量}
{%endfor%}

<>但问题是它也显示了ORM的“强>无”/强>值,而我只想显示包含数据的字段,而省去空白值。我如何解决这个问题,还有更好的方法吗?

您可以通过模板中的一些
if
语句来实现这一点:

{% for i in sales_order %}

    {% if i.product1 and i.product1_quantity %}
        <tr>
            <td class="align-middle">{{ i.product1 }}</td>
            <td class="align-middle">{{ i.product1_quantity }}</td>
        </tr>
    {% endif %}

    <!-- same for other fields -->

{% endfor %}
{i在销售订单中的百分比%}
{如果i.product1和i.product1_数量%}
{{i.product1}}
{i.product1_数量}
{%endif%}
{%endfor%}

您可以通过模板中的一些
if
语句来实现:

{% for i in sales_order %}

    {% if i.product1 and i.product1_quantity %}
        <tr>
            <td class="align-middle">{{ i.product1 }}</td>
            <td class="align-middle">{{ i.product1_quantity }}</td>
        </tr>
    {% endif %}

    <!-- same for other fields -->

{% endfor %}
{i在销售订单中的百分比%}
{如果i.product1和i.product1_数量%}
{{i.product1}}
{i.product1_数量}
{%endif%}
{%endfor%}

use可以对每个字段使用if语句:


{%if i.product1%}{{i.product1}{%endif%}
{%if i.product1_quantity%}{{i.product1_quantity}{%endif%}

use可以对每个字段使用if语句:


{%if i.product1%}{{i.product1}{%endif%}
{%if i.product1_quantity%}{{i.product1_quantity}{%endif%}

我可以在
{%for I in sales\u order%}
之后添加一个for循环吗?这样我就不必重复整个代码8次了?我认为通过
for
循环是不可能的,但我正在寻找更好的解决方案。如果你发现了什么,请分享。。我尝试将id添加到
td
,但它肯定没有感觉到neat@RahulSharma您可以尝试序列化
销售订单
,然后迭代序列化对象中的字段。检查并在
{%for I in sales\u order%}
之后添加for循环,这样我就不必重复整个代码8次了吗?我认为通过
for
循环不可能实现这一点,但我正在寻找更好的解决方案。如果您发现了什么,请与我们分享。。我尝试将id添加到
td
,但它肯定没有感觉到neat@RahulSharma您可以尝试序列化
销售订单
,然后迭代序列化对象中的字段。检查您可以在模板上编写
{%if%}
语句来检查该上下文是否存在您可以在模板上编写
{%if%}
语句来检查该上下文是否存在