2010-06-17 23 views
6

Tôi sử dụng các trang phẳng django cho rất nhiều nội dung trên trang web của chúng tôi, tôi muốn mở rộng nó để chấp nhận các thẻ mẫu django trong nội dung.Mở rộng các trang phẳng Django để chấp nhận các thẻ mẫu

Tôi tìm thấy điều này snippet nhưng sau nhiều lần larking về tôi không thể làm cho nó hoạt động. Tôi có chính xác trong giả định rằng bạn sẽ cần quá "phân lớp" các ứng dụng django flatpages để có được điều này để làm việc? Đây có phải là cách tốt nhất để làm điều đó không? Tôi không hoàn toàn chắc chắn làm thế nào để cấu trúc nó, như tôi không thực sự muốn trực tiếp sửa đổi phân phối django.

Trả lời

8

1. Một đơn giản trang điểm mà sẽ làm cho mẫu thẻ bằng cách tải một mẫu cho mỗi trang:

trong url.py

url(r'^page/(?P<slug>.*)/$','my_app.views.page_detail', name='page_url'), 

trong my_app/views.py

def page_detail (request, slug): 
    return render_to_response('page/' + slug + '.html', {}, 
           context_instance=RequestContext(request)) 

2. Phương pháp khác với các trang phẳng được lưu trữ trong cơ sở dữ liệu, là t o sử dụng "thẻ đánh giá mẫu" trong mẫu của bạn như this one.

chỉnh sửa Bạn chỉ cần phải sửa đổi flatpages template như thế này:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" 
    "http://www.w3.org/TR/REC-html40/loose.dtd"> 
<html> 
<head> 
<title>{{ flatpage.title }}</title> 
</head> 
<body> 
{% load evaluate_tag %} 
{% evaluate flatpage.content %} 
</body> 
</html> 
+0

Hi Pierre, Vấn đề là tôi có nhiều nội dung trong ứng dụng trang phẳng, nhưng tôi thường muốn có thể bao gồm Thẻ Django và nhập chúng thông qua giao diện quản trị trang phẳng, tôi không muốn giữ nội dung một cách riêng biệt trong các mẫu như tôi nghĩ rằng ví dụ của bạn hiển thị? Tôi đã xem xét thẻ đánh giá mẫu bạn đã đề xuất, nhưng tôi đang gặp khó khăn khi hiểu cách đó sẽ giúp tôi đạt được mục tiêu của mình –

+1

Tristan, tôi đã chỉnh sửa phản hồi của mình và thêm mẫu chi tiết. Hy vọng nó giúp. –

+0

Xin chào Pierre, với ví dụ của bạn, tôi hiểu rõ hơn cách thẻ đánh giá hoạt động và trông giống như giải pháp cho tôi, cảm ơn bạn đã dành thời gian giải thích. Như tôi đã hiểu, eval_tag sẽ chỉ đọc qua đầu ra của flatpage và xử lý các thẻ có liên quan tại thời điểm đó. Trông hoàn hảo ... –

0

Cách tiếp cận khác có thể là viết một ứng dụng đơn giản dựa trên direct_to_template generic view.

+0

Hi Carles, Điều này sẽ không giúp đỡ tôi khi tôi có rất nhiều văn bản đã nhập và được duy trì qua các trang phẳng giao diện quản trị, vấn đề là tôi cần để có thể nhập thẻ django mẫu trong đó cũng như các văn bản đơn giản, và có họ render. –

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