Cách gọi một view từ một view khác trong django

Em xin chào mọi người ạ ,

Em đang học làm web bằng django , em đang mắc đoạn này chưa biết các làm mong mọi người chỉ bảo ạ .

Đầu tiên em có 2 cái view như sau :

def Test(request):
    menu = Category.objects.all()
    return render(request,'learn/test.html',{'menus':menu})

def Test2(request):
    subjects = Subject.objects.all()
    return render(request,'learn/test2.html',{'subjects':subjects})   

Đoạn mã template cho 2 view trên như sau

<!-- test.html -->
<h1 style="color:red">List 1</h1>
{% for cat in menus %}
  <h1 style="color:red">{{cat.title}}
  </h1>
{% endfor %}

<!-- test2.html -->
<h1 style="color:black">List 2</h1>
{% for sub in subjects %}
  <h1 style="color:black">{{sub.title}}
  </h1>
{% endfor %}
<hr/>

Và kết quả :



Bây giờ em muốn đứng ở trang test2 , load trang test1 đưa vào nội dung của trang test2 thì phải làm sao ạ , em có tìm hiểu thấy được thẻ include nhưng nó chỉ lấy mã html từ trang test qua được thôi , chứ đoạn mã liên quan tới server side thì nó không lấy được ạ :

{% include 'learn/test.html' %}


Vậy mọi người cho em hỏi để giải quyết trường hợp này em phải làm sao ạ ?
Rất mong được mọi người chỉ bảo , em xin chân thành cảm ơn .

kb mình hiểu đúng ý chưa.

cho test 1 vào (% block x %) rồi ghép qua test 2 thôi.

mình nghĩ b nên bắt đầu học django từ đây

1 Like

Em học trên howkteam không thấy họ đề cập tới vấn đề này , nó giống như là thẻ include trong ASP .NET ấy ạ , nôm na nó sẽ lấy trang khác về và đặt vào vị trí mình cần .

Giống như Ajax ấy ạ , nó ở trang A , gọi Ajax qua trang B , lấy dữ liệu từ trang B đổ lên trang A ấy ạ, nôm na là như thế ạ.

Em rất xin lỗi , em diễn đạt tệ quá.

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?