문제

항목 목록 인 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

그렇지 않으면 각 하위 목록에 대한 쿼리를 시작하십시오

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top