首页 > 解决方案 > 当必须在模板中格式化消息和作为 ajax 调用的响应时,避免在 Django 中重复

问题描述

我有一个聊天板,人们可以在其中发布可以包含附件和其他一些附加内容的消息。当我检索所有消息时,我会遍历它们并以这种方式显示每条消息(简化):

<p>Message posted by: <strong>{{ details.name }}</strong></p>
<p>{{ details.message }}</p>
<ul>
{% foreach attachment in attachments %}
<li>{{ attachment }}</li>
</ul>
{% endforeach %}

到目前为止,一切都很好。现在,我的困难是我使用 AJAX 来允许人们发布新消息。添加新消息后,我很难找到向用户显示此消息的最佳方式。问题是新消息需要以特定方式格式化(以上是简化;有各种条件和附加格式)。我可以想到三种方法:

最后一个选项是唯一没有重复代码的选项。但是,它会在我的模态中引入大量代码,包括 HTML 代码,这似乎是一件很糟糕的事情。

有什么建议吗?

标签: djangodjango-modelsdjango-views

解决方案


没有理由不能在 Ajax 响应中使用模板。您可以将此模板片段提取到其自己的模板文件中,并在 Ajax 响应的情况下直接呈现它,或者将其包含在另一个模板中以进行正常的页面视图。


推荐阅读