模板中的 Django 布尔过滤器元素

Django boolean filter elements in template

我有一个 Django 模板,我可以在其中执行如下查询:

{% for post in user.post_auctions_set.all %}

我现在的意思是我只想显示 post 个没有布尔素数 = True 的元素。 我遇到过模板标签,但从未真正使用过它们。 可以给我一个关于如何设置过滤器的提示?

views.py

def pae(request, pk=None):
    if pk:
        user = get_user_model().objects.get(pk=pk)
    else:
        user = request.user
    args = {'user': user}
    return render(request, 'App/pae.html', args)

models.py

class Post_Auctions(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4, editable=False)
    author = models.ForeignKey(User, on_delete=models.CASCADE)
    ...
    prime = models.BooleanField(verbose_name="Prime", default=False, editable=True)

提前致谢

您可以使用 if clause 形式的内置 django 模板标签集:

{% for post in user.post_auctions_set.all %}
    {%  if post.prime %}
    ...

注意:这可能不是最好的解决方案,但我唯一能想到的是正确的,因为我现在对 Django 不太熟悉。至少,我在某处读到的是尽可能避免这种模板逻辑。