使用Django/Python时查找唯一查询值

使用Django/Python时查找唯一查询值,python,django,unique,Python,Django,Unique,我试图打印出一个页面,上面有拍卖网站的所有可用类别。现在它正在打印表中的每一个实例。例如,有多个打印输出的“动物”作为一个类别-但我只想让它显示一个 最好的方法是什么? 我尝试了“独特”的方法,但似乎没有任何效果 以下是我的相关代码: views.py: def categories(request): query = NewPost.objects.all().distinct() return render(request, "auctions/categories

我试图打印出一个页面,上面有拍卖网站的所有可用类别。现在它正在打印表中的每一个实例。例如,有多个打印输出的“动物”作为一个类别-但我只想让它显示一个

最好的方法是什么?
我尝试了“独特”的方法,但似乎没有任何效果

以下是我的相关代码:

views.py:

def categories(request):
    query = NewPost.objects.all().distinct()
    return render(request, "auctions/categories.html", { "queries": query })
categories.html:

{% extends "auctions/layout.html" %}

{% block body %}
    <h2>Categories</h2>
    {% for query in queries %}
        <li><a href="/categories/{{ query.category }}">{{ query.category }}</a></li>
    {% endfor %}  
{% endblock %}
{%extensed“auctions/layout.html”%}
{%block body%}
类别
{%用于查询中的查询%}
  • {%endfor%} {%endblock%}
    您能给我们提供
    NewPost
    的models.py代码吗。您可能需要查询
    类别
    模型(如果有)以获得唯一的类别列表。

    query=NewPost.objects.values(“类别”).distinct()


    将找到一个不同的列值。谢谢大家

    在您的代码中,将显示所有行,因为每一行包含该行的主键,因此根据定义,所有行都是不同的。ooo所以如果我做了一个过滤器(category=category.distinct(),那么它应该是好的?query=NewPost.objects.values(“category”).distinct()类NewPost(models.Model):title=models.CharField(max_length=64)description=models.CharField(max_length=64)price=models.IntegerField()category=models.CharField(max_length=64)我没有类别模型…当用户制作新的拍卖帖子时,它是newpost模型的一部分。有一个单独的
    类别
    模型可能是有意义的,然后
    新帖子
    模型中的
    类别
    字段可以指向
    类别
    模型。你仍然可以允许用户在创建新的拍卖帖子时创建新的类别。这很有意义。我现在选择让用户创建自己的类别。谢谢