2009-11-29 45 views
5

Tôi muốn biết liệu tôi có thể hiển thị chế độ xem trong chế độ xem khác với django hay không.Django, hiển thị chế độ xem ở chế độ xem khác?

Đây là những gì tôi đã cố gắng để làm:

def displayRow(request, row_id): 
    row = Event.objects.get(pk=row_id) 
    return render_to_response('row.html', {'row': row}) 

def listEventsSummary(request): 
    listEventsSummary = Event.objects.all().order_by('-id')[:20] 
    response = '' 
    for event in listEventsSummary: 
     response += str(displayRow('',event.id)) 
    return HttpResponse(response) 

Kết quả trông giống như những gì tôi đã mong đợi nhưng tôi đã phải thay thế các giá trị yêu cầu với một chuỗi rỗng. Điều đó tốt hay có cách nào tốt hơn để làm điều đó?

Trả lời

4

Phản hồi http chứa tiêu đề cùng với html hoặc bất kỳ thứ gì khác, vì vậy bạn không thể chỉ thêm chúng giống như chuỗi.

nếu bạn muốn modularize chức năng nhìn của bạn, sau đó có tiểu thủ tục các cuộc gọi trở lại chuỗi và sau đó bạn có thể làm nó theo cách bạn đề xuất

Có lẽ trong trường hợp của bạn sẽ tốt hơn để đặt một vòng lặp cho thấy hàng vào mẫu, sau đó bạn sẽ không cần chế độ xem phụ và vòng lặp trong chế độ xem chính của bạn.

def listEventsSummary(request): 
    listEventsSummary = Event.objects.all().order_by('-id')[:20] 
    return render_to_response('stuff.html',{'events':listEventsSummary}) 

và trong stuff.html

{% for event in events %} 
    <p>{{event.date}} and whatever else...</p> 
{% endfor %} 
+0

yeah Tôi đã tự hỏi làm thế nào để loại bỏ các tiêu đề ;-) cảm ơn cho Giải thích – Roch

Các vấn đề liên quan