0

私はここでこの男と非常によく似た問題を抱えていますが、投稿のプレビュー(約100文字)を表示するためにpython(djangoでサイトを開発しました)を使用したいことを除いて。それを行う方法を見つけた場合は、私と共有してもらえますか?

編集: (これまでに行ったことはありますか?) 生の投稿から最初の 100 文字を抽出してみました。post[:100] のようなもの。生の投稿の単純な部分文字列には、適切に閉じられていないhtml構文が明らかに含まれているため、正しい解決策ではありません。

EDIT2:私はジャンゴの初心者です。実際、これは django に関する私の最初のプロジェクトです。ありがとう

4

1 に答える 1

1

それを示すオンラインの例は知りませんが、その機能を含む個人的なプロジェクトがあります。agconti:刻印あり

クローンを作成してテストする場合は、レポ全体が上記にリンクされていますが、必要に応じたコードは次のようになります。

アヤックスの投稿:

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.htmldivindex.htmlが含まれているのは私のものです!#results

Blank.html:

{% block results %}{% endblock %}

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

#resultsページをレンダリングする通常の django ビューは、上記の ajax 投稿が ajax 投稿を開始したページの div (上記の例には含まれていません) に挿入する html を返します。

コメントから編集:

プレビューに本当に表示したいものは、記事のタイトルなどの重要なものだと思います。プレビュー テンプレートをレンダリングするプレビュー用の別のビューがあります。そのテンプレートでは、次のようなことをするかもしれません:

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

{{ article_title|truncatechars:9 }}

次に、これをページに挿入して、たとえばマウスオーバーで表示できます。

于 2013-11-11T04:16:04.307 に答える