2012-09-13 15 views
5

Sto tentando di utilizzare il markdown per evitare di digitare HTML all'interno del mio modulo wiki, ma per qualche motivo il modulo sta visualizzando codice HTML invece della formattazione prevista.HTML non visualizzato nel campo di testo Django

La mia funzione di visualizzazione è la seguente:

from django.shortcuts import render_to_response 
from mywiki.wiki.models import Page 
from django.http import HttpResponseRedirect 
import markdown 


def view_page(request, page_name): 
    try: 
     page = Page.objects.get(pk=page_name) 
    except Page.DoesNotExist: 
     return render_to_response('create.html', {'page_name':page_name}) 

    content = page.content  
    return render_to_response('view.html', {'page_name':page_name, 'content':markdown.markdown(content)}) 

Questo è il mio modello view.html:

{% extends 'base.html' %} 
{% load wikilink %} 

{% block title %}{{page_name}}{% endblock %} 

{% block content %} 
     <h1>{{page_name}}</h1> 
     {{content|wikify}} 
     <hr/> 
     <a href='/mywiki/{{page_name}}/edit/'>Edit this page?</a> 

{% endblock %} 

E questo è il mio base.html:

<html> 
    <head> 
     <title>{{% block title %}{% endblock %}</title> 
    </head> 
    <body> 
<div> 
Menu: <a href='/mywiki/Start/'>Start Page</a> 
</div> 
     {% block content %} 
     {% endblock %} 
    </body> 
</html> 

faccio ho installato markdown e la mia versione di Django è 1.4.1 (Mac).

Grazie.

+0

https://stackoverflow.com/questions/2080559/disable-html-escaping-in-djangos-textfield – ammarx

risposta

16

Usa Django safe filter modo per il codice HTML non deve essere sfuggito.

{{ content|safe }} 
+1

si può concatenare i filtri? '{{content | wikify | safe}}' –

+2

sì. è possibile per quanto ne so. – thikonom

+0

sì, sono appena andato a dare un'occhiata ai documenti e sono d'accordo con te (+1 per una risposta più concisa della mia: P) –

1
{% autoescape off %} 
{{content|wikify}} 
{% endautoescape %} 

forse ...

Problemi correlati