Skip to content Skip to sidebar Skip to footer

How Can I Add Additional Data To Django Messages?

I'm trying to integrate this snippet into our Django project: It's just custom HTML and CSS for messages. The html looks like this:
# views.py
messages.success(request, 'You have signed up', extra_tags='suggest_upgrade')

or:

messages.success(request, 'You have signed up', extra_tags='suggest_share')

and then:

{% for message in messages %}

    {% if 'suggest_upgrade' in message.extra_tags %}
        <h1>Get these extra features</h1><p>info here</p>
    {% elif 'suggest_share' in message.extra_tags %}
        <h1>Share with friends</h1><p>other info here</p>
    {% endif %}

{% endfor %}

You could even pass a submessage as the tag itself although it’s probably not designed for that purpose:

messages.success(request, 'Main message here', extra_tags='submessage here')

and then:

{% for message in messages %}

    <h1>{{ message }}</h1>
    <p>{{ message.extra_tags }}</p>

{% endfor %}

Solution 2:

Message doesn't necessary needs to be a string. In your case, using a dictionary would work just fine:

messages.success(request, {'title':'This is a title','submessages':[1,2,3]})

and then in your template:

{% for message in messages %}
    <divclass="bs-calltoaction bs-calltoaction-{{ message.tags }}"><divclass="row"><divclass="col-md-9 cta-contents"><h1class="cta-title">{{ message.message.title }}</h1><divclass="cta-desc"><p>{{ message.message.submessages.0 }}</p><p>{{ message.message.submessages.1 }}</p></div></div><divclass="col-md-3 cta-button"><ahref="#"class="btn btn-lg btn-block btn-default">Go for It!</a></div></div></div>
{% endfor %}

Post a Comment for "How Can I Add Additional Data To Django Messages?"