繁体   English   中英

django从queryset获得独特的价值

[英]django get distinct value from queryset

我有一个模型:

class Organisation(User):
    organisation_name = models.CharField(max_length=200)
    first_parent = models.ForeignKey('Parent', related_name="first", blank=True, null=True)
    second_parent = models.ForeignKey('Parent', related_name="second", blank=True, null=True)



    def __unicode__(self):
        return self.username

和我的父母模型:

class Parent(models.Model):
    parent_name = models.CharField(max_length=50)

    def __unicode__(self):
        return self.parent_name

在这里,我希望模板中的父母列表是唯一的。 我不想再父母。

我经历过:

organisations = Organisation.objects.all().distinct('first_parent')

但是mysql不支持。

我试图从组织中获得第一批父母的名单,然后它的集合仅给出了唯一的值,例如:

organisations = Organisation.objects.all()
parent_list = organisations.first_parent ## it gives error says 'QuerySet' object has no attribute 'first_parent'

我曾考虑过将模板分组,但是我无法..

我想要的是first_parent或在模板中具有其ID的组织的列表,以便我可以将其重定向到ID为

{% for parent in parent_list %}
    {{parent}}
    <a href="{% url "some_url" parent.id %}"

我得到的first_parent应该是唯一的。

我怎么能得到这个。 请帮忙

对于像MySQL这样不支持distinct('...')后端,请使用Organisation.objects.values('first_parent').distinct() ,这将为您提供{'first_parent': value}字典列表

要获取仅值的列表,请执行

parent_list = [org['first_parent'] for org in Organisation.objects.values('first_parent').distinct()]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM