【问题标题】:Finding unique query values when using Django/Python使用 Django/Python 时查找唯一查询值
【发布时间】:2020-09-25 01:58:48
【问题描述】:

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

最好的方法是什么?
我尝试了“distinct”方法,但它似乎没有做任何事情。

下面是我的相关代码:

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 %}

【问题讨论】:

  • 在您的代码中.distinct() 将显示所有行,因为每一行都包含该行的PK,因此根据定义,所有行都是不同的。
  • ooo 所以如果我做了一个过滤器(category = category).distinct() 那么它应该是好的?
  • query = NewPost.objects.values("category").distinct()

标签: python django unique


【解决方案1】:

您能给我们NewPost 的models.py 代码吗?您可能想要查询 Category 模型(如果有的话)以获取唯一的类别列表。

【讨论】:

  • class NewPost(models.Model): title = models.CharField(max_length=64) description = models.CharField(max_length=64) price = models.IntegerField() category = models.CharField(max_length =64)
  • 我没有类别模型...当用户发布新的拍卖帖子时,它是新帖子模型的一部分。
  • 有一个单独的Category 模型可能有意义,然后New Post 模型中的category 字段可以是指向Category 模型的ForeignKey。您仍然可以允许用户在创建新的拍卖帖子时创建新类别。
  • 这是有道理的。我现在选择让用户创建自己的类别。谢谢!
【解决方案2】:

query = NewPost.objects.values("category").distinct()

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

【讨论】:

    猜你喜欢
    • 2019-03-06
    • 2013-02-28
    • 1970-01-01
    • 2017-08-23
    • 2021-05-01
    • 1970-01-01
    • 2015-08-26
    • 2019-12-11
    • 2016-05-22
    相关资源
    最近更新 更多