2015-06-05 133 views
0

不同的值我有一个模型:的Django得到查询集

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我得到的应该是唯一的。

我怎样才能得到这个。请帮助

回答

0

对于不支持distinct('...')像MySQL后端,使用Organisation.objects.values('first_parent').distinct(), 这给你的{'first_parent': value}词典

名单要得到的只是价值做

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