我有一个与这个人here非常相似的问题,除了我想使用python(我在django上开发我的网站)来显示我的帖子预览(大约100个字符)。如果您找到了办法,请与我分享一下吗?
编辑:(到目前为止我做了什么?)我尝试从原始帖子中提取前100个字符。像post [:100]之类的东西。它不是正确的解决方案,因为原始帖子的简单子字符串显然会包含未正确关闭的html语法。
EDIT2:我是django新手。实际上这是我在django上的第一个项目。 感谢
答案 0 :(得分:1)
我不知道任何在线示例,但我确实有一个包含该功能的个人项目; agconti:stamped。
如果您想要克隆并测试它,整个仓库链接在上面,但是与您的需求相关的代码将是;
Ajax帖子:
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帖子会在ajax发布的页面上注入#results
div(上面的例子中没有包含)。
根据您的评论进行修改:
我假设您真正希望在预览中显示的内容非常重要,比如文章的标题。对于呈现预览模板的预览,我会有一个单独的视图。在该模板中,我可以执行以下操作:
<!-- blank because this will be injected into your page -->
{{ article_title|truncatechars:9 }}
然后你可以将它注入你的页面并在鼠标上显示它。