2011-12-31 19 views
8

Đây là base.html tôidjango mẫu kéo dài không làm việc

<!DOCTYPE html> 
<head> 
<title> My Site </title> 
</head> 
<body> 
<div id="wrapper"> 
<!-- HEADER START --> 
{% block nav %} {% endblock %} 
{% block index %} {% endblock %} 
</div> 
</body> 
</html> 

đây là nav.html tôi

{% extends "base.html" %} 
{% block nav %} 
<div id="header"> 
<div class="inner"> 

<div class="nav"> 
<ul> 
<li class="current"><a href="index.html">Home</a></li> 
<li><a href="about.html">About</a></li> 
<li><a href="blog_right.html">Blog</a></li>       
<li><a href="contact.html">Contact</a></li> 
</ul>      
</div> 
<div class="clear"></div>   
</div><!-- .inner end --> 
</div><!-- #header end --> 
<!-- HEADER END --> 
{% endblock %} 

đây là index.html của tôi

{% extends "base.html" %} 
{% block index %} 
<p> hello </p> 
{% endblock %} 

Tôi đã làm nó nhiều lần trước khi trước nhưng tôi không biết gì về lý do tại sao điều này là không làm việc? các url và chế độ xem là here.

+2

Có vấn đề gì? "Nó không hoạt động" không phải là rất hữu ích. –

Trả lời

10

Mọi thứ đều ổn, rắc rối mà bạn đang gặp phải là bạn đang nhầm lẫn, chỉ đặt tên khối trong cơ sở không gọi nó. Đánh dấu sự khác biệt giữa mở rộng và bao gồm. Bạn counfused mở rộng để bao gồm.

Khi ở trong chế độ xem của bạn, nếu bạn gọi thì index.html sẽ được hiển thị chính xác. Hiệu ứng bạn muốn có thể đạt được bằng cách thay đổi base.html trong chế độ xem của bạn thành index.html.

Hy vọng điều này sẽ hữu ích. bạn có thể đọc thêm tại đây: https://docs.djangoproject.com/en/dev/topics/templates/#template-inheritance

+0

cảm ơn, nó đã giúp ích rất nhiều. và yeah tôi sẽ nhớ rằng ... ngớ ngẩn tôi: ( – user993563

1

Đối với nhiều người kết thúc ở đây (như chính tôi), điều quan trọng cần lưu ý là khi bạn sử dụng {% extends 'something.html' %}, bạn không thể sử dụng bất cứ điều gì khác ngoài các thẻ mẫu này ở cấp cao nhất.

Bạn rõ ràng có thể có thẻ html bên trong các thẻ này (như thẻ chặn), nhưng không đặt bất kỳ thứ gì bên ngoài thẻ mẫu.