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

  • Hot For Nutrition

    Hot For Nutr

    26 ŞUBAT 2007
  • KoreanFrogMania님의 채널

    KoreanFrogMa

    18 Aralık 2011
  • The CGBros

    The CGBros

    20 AĞUSTOS 2011