python filter无值

时间:2017-04-23 17:30:06

标签: django django-views

我有:

1。 models.py

class Post(models.Model):
    ROOT_CHOICES = (
        ('Manufacturing', 'Manufacturing'),
        ('Transportation', 'Transportation'),
        ('Installation', 'Installation'),
        ('Operation', 'Operation'),
    )
    root1 = models.CharField(max_length=250, choices=ROOT_CHOICES, default='Manufacturing')
    root2 = models.CharField(max_length=250, choices=ROOT_CHOICES, null=True, blank=True)
    root3 = models.CharField(max_length=250, choices=ROOT_CHOICES, null=True, blank=True)
    root4 = models.CharField(max_length=250, choices=ROOT_CHOICES, null=True, blank=True)

2。 views.py

def post_detail(request, slug):
    post=get_object_or_404(Post, slug=slug)
    if request.method == "POST":
        form = CommentForm(request.POST)
        if form.is_valid():
            comment = form.save(commit=False)
            comment.post=post
            comment.save()
            return redirect('data:post_detail', slug=post.slug)
    else:
        form=CommentForm()
    template = 'data/post_detail.html'
    context = {'form':form,'post':post}
    return render(request, template, context)

第3。 HTML

<div class="col-sm-3">
    <div class="post-parameters">
         <p class="text-parameters"> Root: {{ post.root1 }}, {{ post.root2 }}, {{ post.root3 }}, {{ post.root4 }}</p>
    </div>
 </div>

现在,在我的html文件中看起来像这样:根:制造,无,无,无这是正确的。但是,我不想显示,如果有的话,无值,例如的根:制造

1 个答案:

答案 0 :(得分:1)

您可以使用default_if_none过滤器,因此:{{post.root1|default_if_none:""}}

或者,您可以专门检查每个值

{% if post.root1 %} {{post.root1}} {% endif %}