2013-05-30 2 views
0

저는 데이터로 dicts의 dict을 만들고 템플릿에 전달하려고합니다.dicts django의 dict에 쿼리 세트를 변환합니다.

Exception Value: 

'QuerySet' object does not support item assignment 

내가 장고와 프로그래밍 그래서이 하자구 취할 새로운 오전 :

models.py

class Lesson(models.Model): 
... 

class Files(models.Model): 
... 

class Section(models.Model): 
    file = models.ManyToManyField(Files) 
    lesson = models.ForeignKey(Lesson) 

views.py

def LessonView(request): 
    the_data={} 
    all_lessons= Lesson.objects.all() 
    for lesson in all_lessons: 
     the_data[lesson]=lesson.section_set.all() 
     for section in the_data[lesson]: 
      the_data[lesson][section]=section.file.all() <---error 
    Context={ 
     'the_data':the_data, 
     } 
return render(request, 'TMS/lessons.html', Context) 

는 오류가 발생합니다 템플릿에 각 강의의 각 섹션에 대한 파일 목록을 표시 할 수 있도록 데이터를 전달하는 올바른 방법은 무엇입니까?

답변

2

dicts로 변환하지 않아도 템플릿으로 전달할 수 있습니다. 사용자가 직접 검색어 세트를 반복 할 수 있으며, 각각에 대해 당신이 얻을 수있는 관련 섹션 및 파일 :

{% for lesson in all_lessons %} 
    {{ lesson.name }} 
    {% for section in lesson.section_set.all %} 
     {{ section.name }} 
     {% for file in section.file.all %} 
      {{ file.name }} 
     {% endfor %} 
    {% endfor %} 
{% endfor %} 

(단지 원래의 접근 방식 등)이 데이터베이스 쿼리의 측면에서 매우 비싼 것을 참고 :이 조사해야 보기에 prefetch_related을 사용하여 해당 항목을 줄입니다.

+0

감사합니다. 쿼리는보기에서 수행해야합니다. – belonious

관련 문제