0

我有一个和这个人非常相似的问题除了我想使用 python(我在 django 上开发我的网站)来显示我的帖子的预览(大约 100 个字符)。如果你找到了方法,可以分享给我吗?

编辑:(到目前为止我做了什么?)我尝试从原始帖子中提取前 100 个字符。像 post[:100] 之类的东西。它不是正确的解决方案,因为原始帖子的简单子字符串显然会包含未正确关闭的 html 语法。

EDIT2:我是 django 新手。实际上这是我在 django 上的第一个项目。谢谢

4

1 回答 1

1

我不知道有任何在线示例可以证明这一点,但我确实有一个包含该功能的个人项目;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的包含#resultsdiv 的!

Blank.html

{% block results %}{% endblock %}

<!-- to allow for corrected shared rendering 
        with ajax posts and normal django rendering -->

任何呈现页面的普通 django 视图都将返回 html,上面的 ajax 帖子将注入#resultsajax 帖子发起的页面上的 div(不包括在上面的示例中)。

从您的评论中编辑:

我假设您真正想要在预览中显示的内容很重要,例如文章的标题。对于呈现预览模板的预览,我会有一个单独的视图。在该模板中,我可能会执行以下操作:

<!-- blank because this will be injected into your page -->

{{ article_title|truncatechars:9 }}

然后,您可以将其注入您的页面并在鼠标悬停时显示它。

于 2013-11-11T04:16:04.307 回答