SORU
12 Ocak 2010, Salı


Nasıl yeni Django mesajlar çerçevesinde bir mesaj çıktı HTML muyum?

Yeni Django mesajları Çerçevesi aracılığıyla görüntülenen bir mesaj içinde html biraz görüntülemek için çalışıyorum. Özellikle, ModelAdmin üzerinden yapıyorum.sadece mesaj etrafında ince bir sarıcı olan message_user yöntemi, ():

def message_user(self, request, message):
    """
    Send a message to the user. The default implementation
    posts a message using the django.contrib.messages backend.
    """
    messages.info(request, message)

Denedim her şeyi şimdiye kadar kaçtı HTML görüntüleme gibi görünüyor.

self.message_user(request, "<a href=\"http://www.google.com\">Here's google!</a>")

İşe yaramıyor, ne yapar:

from django.utils.safestring import mark_safe
...
self.message_user(request, mark_safe("<a href=\"http://www.google.com\">Here's google!</a>"))

Admin base.html şablon şablon kodu ekranı oldukça basittir:

    {% if messages %}
    <ul class="messagelist">{% for message in messages %}<li>{{ message }}</li>{% endfor %}</ul>
    {% endif %}

Tam olarak ne yanlış ne yapıyorum emin değilim.

Düşünce veya rehberlik büyük takdir, teşekkür ederim!

CEVAP
12 NİSAN 2012, PERŞEMBE


Başka bir seçenek extra_tags anahtar kelime arg mesaj güvenli olduğunu belirtmek için kullanmaktır. Örn

messages.error(request, 'Here is a <a href="/">link</a>', extra_tags='safe')

sonra şablon mantığı güvenli filtre kullanın

{% for message in messages %}
    <li class="{{ message.tags }}">
    {% if 'safe' in message.tags %}{{ message|safe }}{% else %}{{ message }}{% endif %}
    </li>
{% endfor %}

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Edge-CGI 3D Tutorials and more!

    Edge-CGI 3D

    11 HAZİRAN 2013
  • MrOctopi

    MrOctopi

    6 Aralık 2010
  • Sorikan

    Sorikan

    3 ŞUBAT 2008