고전적인 문제가있을 수 있지만이를 수행 할 수있는 스 니펫을 찾지 못했습니다.django - 방법에 의한 QuerySet 재귀 순서
전체 이름으로이 모델을 정렬하고 싶습니다. 나는 "부모"에 의해 정렬 시도
class ProductType(models.Model):
parent = models.ForeignKey('self', related_name='child_set')
name = models.CharField(max_length=128)
def get_fullname(self):
if self.parent is None:
return self.name
return u'%s - %s' % (unicode(self.parent), self.name)
fullname = property(get_fullname)
는 무한 루프 오류을 얻었다. "parent__id"는 잘 정렬되지 않았습니다.
문자열 필드를 연결하는 데 annotate()을 사용하는 방법을 이해하지 못했습니다.
- 나는 분류 ()와 사용자 정의 관리자를 추가,하지만 그것은 목록 개체를 반환하고 일을 내 forms.ModelChoiceField을 방지 할 수 있습니다.
여기 정렬
def all(self):
return sorted(super(ProductTypeManager, self), key=lambda o: o.fullname)
djangonic 정글에서 다른 어떤 존재입니까? 도움 주셔서 감사합니다.
이상하게 행동합니다. order_by ('parent__id')와 같습니다. – leplatrem
"이상하게 행동하는"의미는 정확히 무엇입니까? 그것이 틀린 특정 일로 질문을 업데이트 할 수 있습니까? –
나는 그것이 잘 정렬되지 않는다는 것을 의미했다 : http://pastebin.com/m3af438ac 일치하지 않는 것으로 알려져있다 : http://code.djangoproject.com/ticket/7101#comment:1 – leplatrem