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

  • calicoJake

    calicoJake

    29 EKİM 2007
  • kev5124

    kev5124

    9 Kasım 2008
  • PorterRobinsonVEVO

    PorterRobins

    11 Kasım 2013