0

私は、カスタム ブログ Django プロジェクト用の小さなニュースレター アプリに取り組んでいます (私のためだけに)。このプロジェクトの主な機能の 1 つは、一連の記事タイプの定義です。すべての記事タイプは、抽象基本クラス「記事」の子です。記事タイプの 2 つの例は、「イベント記事」と「ビデオ記事」です。ニュースレター アプリには、「コンテンツ」フィールド (= メール メッセージ) があります。ここで、ニュースレターに含めるいくつかの記事 (任意のタイプ) を選択したいと考えています。ニュースレターにまだ掲載されていないすべての記事を検索する関数を作成するだけで簡単になる場合があります。次に、必要なすべての情報を収集し、それらをテキストに結合して、関数をフィールドのデフォルトとして設定します。でも記事は自分で選んでいます。私はm2mフィールドについて考えました、しかし、いくつかの記事 (オブジェクトの編集フォームのインライン) を選択して、コンテンツ フィールドに必要な情報 (absolute_url や見出しなど) をすぐに入力するにはどうすればよいでしょうか? 事前にご協力いただきありがとうございます。

4

1 に答える 1

0

オプションは AJAX のみです。記事を JSON として返すビューをセットアップします。ユーザーが記事を選択したときに、そのビューへの AJAX 呼び出しを行います。次に、返された JSON を解析し、テキスト フィールドに JavaScript を入力します。

ビュー.py

from django.core import serializers
from django.http import HttpResponse

def json_get_article(request, article_id):
    article = get_object_or_404(MyModel, id=article_id)
    data = serializers.serialize("json", article)
    return HttpResponse(data, mimetype='application/json')

script.js (簡単にするために jQuery を使用)

$.getJSON('/my/ajax/url/', function (data, textStatus, jqXHR) {
    $('#id_my_text_field').val(data[0]['field_containing_text'])
});

もちろん多少の調整は必要ですが、それが基本的なプロセスです。

于 2011-06-13T18:32:46.790 に答える