我有一个模特:
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为
的ID页面{% for parent in parent_list %}
{{parent}}
<a href="{% url "some_url" parent.id %}"
first_parent我得到的应该是唯一的。
我怎样才能得到这个。请帮忙
答案 0 :(得分:0)
对于不支持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()]