JuConte
JuConte

Reputation: 542

Django render template from model variables

I have a model:

class DocumentoPaziente(models.Model):
    nome = models.CharField(null=True, blank=True, max_length=50)
    cognome = models.CharField(null=True, blank=True, max_length=50)
    contenuto = models.CharField(null=True, blank=True, max_length=100000)

Variale content:

Il Paziente <font color="#000000"><font face="Arial, serif"><font size="3" style="font-size: 12pt"><span lang="zxx"><b>{{ member.cognome }}
{{ member.nome }}</b></span></font><font color="#000000"><font face="Arial, serif"><font size="3" style="font-size: 12pt"><span lang="zxx">
abitante [...]

In template:

{% autoescape off %}
{{ member.contenuto }}
{% endautoescape %}

It render

Il Paziente {{ member.cognome }} {{ member.nome }} abitante [...]

Expected:

Il Paziente Smith John abitante [...]

Upvotes: 2

Views: 86

Answers (1)

willeM_ Van Onsem
willeM_ Van Onsem

Reputation: 476624

You can define a function in your model to do the rendering properly, like:

from django.template import Template, Context

class DocumentoPaziente(models.Model):
    nome = models.CharField(null=True, blank=True, max_length=50)
    cognome = models.CharField(null=True, blank=True, max_length=50)
    contenuto = models.CharField(null=True, blank=True, max_length=100000)

    def render_content(self):
        return Template(self.contuento).render(Context({'member': self}))

In your template, you can then render this with:

{% autoescape off %}
{{ member.render_content }}
{% endautoescape %}

Upvotes: 1

Related Questions