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

  • 365multimedia

    365multimedi

    26 ŞUBAT 2009
  • CorridorDigital

    CorridorDigi

    17 Mayıs 2010
  • StalkerJS

    StalkerJS

    15 HAZİRAN 2010