来自模型变量的Django渲染模板

2024-10-01 09:17:53 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个模型:

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)

可变内容:

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 [...]

在模板中:

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

它使

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

预期:

Il Paziente Smith John abitante [...]

Tags: truesizemodelsnulllengthmaxilmember
1条回答
网友
1楼 · 发布于 2024-10-01 09:17:53

您可以在模型中定义一个函数来正确进行渲染,如:

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}))

然后,在模板中,可以使用以下方法渲染:

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

相关问题 更多 >