django 관련 모델 정렬 순서 지정
-
13-09-2019 - |
문제
항목 목록 인 Django 모델이 있으며 각 목록의 항목이 별도의 정렬 순서를 갖기를 원합니다. 목록 1은 이름별로 항목을 정렬하고 날짜별로 목록 2, 우선 순위별로 목록 3을 정렬 할 수 있습니다.
모델은 다음과 비슷해 보입니다.
class ListItem(models.Model):
priority = models.IntegerField(choices=PRIORITY_CHOICES)
name = models.CharField(max_length=240)
due_date = models.DateTimeField(null=True, blank=True)
list = models.ForeignKey(List)
지금은이 쿼리를 내 생각에 사용하고 있습니다.
lists = List.objects.filter(user=request.user)
return render_to_response('showlists.html', {'lists': lists })
나는 다음과 같은 일을 할 수 있다는 것을 암시하는 예를 읽었습니다.
lists = List.objects.filter(user=request.user).select_related().order_by("items.name")
그것이 효과가 있다고 가정하면, 각 항목의 배치에 대해 동일한 정렬 순서가있는 목록 모음을 제공 할 것입니다. 각 개별 목록의 관련 항목을 다르게 정렬하는 방법은 무엇입니까?
해결책
관련 모델에서 주문하기위한 구문은 filter
, 당신은 할 수 있습니다 :
List.objects.filter(user=request.user).select_related().order_by("listitems__name")
동일한 방식으로 다른 필드를 사용할 수 있어야합니다. order_by
전화.
다른 팁
목록이 작 으면 할 수 있습니다 파이썬으로하십시오, 정렬 및 태깅 사용
list = <...code to get sublist here ...>
list.sort(key=lambda x: x.due_date) #sort by due date, say
그렇지 않으면 각 하위 목록에 대한 쿼리를 시작하십시오
제휴하지 않습니다 StackOverflow