我有一个和这个人非常相似的问题,除了我想使用 python(我在 django 上开发我的网站)来显示我的帖子的预览(大约 100 个字符)。如果你找到了方法,可以分享给我吗?
编辑:(到目前为止我做了什么?)我尝试从原始帖子中提取前 100 个字符。像 post[:100] 之类的东西。它不是正确的解决方案,因为原始帖子的简单子字符串显然会包含未正确关闭的 html 语法。
EDIT2:我是 django 新手。实际上这是我在 django 上的第一个项目。谢谢
我不知道有任何在线示例可以证明这一点,但我确实有一个包含该功能的个人项目;agconti:盖章。
如果您想克隆它并对其进行测试,则上面链接了整个 repo,但与您的需求相关的代码将是;
阿贾克斯帖子:
var send_data = { 'name': place.name, 'address': address};
var csrftoken = $.cookie('csrftoken');
function csrfSafeMethod(method) {
// these HTTP methods do not require CSRF protection
return (/^(GET|HEAD|OPTIONS|TRACE)$/.test(method));
}
$.ajaxSetup({
crossDomain: false, // obviates need for sameOrigin test
beforeSend: function(xhr, settings) {
if (!csrfSafeMethod(settings.type)) {
xhr.setRequestHeader("X-CSRFToken", csrftoken);
xhr.setRequestHeader("X-Requested-With","XMLHttpRequest");
}
}
});
$.ajax({ url: '/results/',
type: 'POST',
data: send_data,
success: function(response, status, jqXHR) {
$("#results").html(response);
//console.log('success function resp');
//console.log(jqXHR.getAllResponseHeaders());
},
error: function(obj, status, err) { alert(err); console.log(err); }
});
控制注入模板和正常页面查看的示例:
{% extends x|yesno:"stamped/blank.html,stamped/home.html" %}
{% load stamped_custom_tags %}
{% block results %}
<!-- Your HTML Here -->
<h1> title and stuff </h1>
<div> I contain things! </div>
{% endblock %}
home.html
是我index.html
的包含#results
div 的!
Blank.html
:
{% block results %}{% endblock %}
<!-- to allow for corrected shared rendering
with ajax posts and normal django rendering -->
任何呈现页面的普通 django 视图都将返回 html,上面的 ajax 帖子将注入#results
ajax 帖子发起的页面上的 div(不包括在上面的示例中)。
从您的评论中编辑:
我假设您真正想要在预览中显示的内容很重要,例如文章的标题。对于呈现预览模板的预览,我会有一个单独的视图。在该模板中,我可能会执行以下操作:
<!-- blank because this will be injected into your page -->
{{ article_title|truncatechars:9 }}
然后,您可以将其注入您的页面并在鼠标悬停时显示它。