用管理界面中其他模型的值填充django-textfield的最佳最简单方法是什么?

问题描述

| 我正在为自定义博客Django项目开发一个小型新闻通讯应用程序(仅对我而言)。该项目的一个主要特征是已定义的“文章类型”集。所有Article类型都是抽象基类“ Article”的子级。文章类型的两个示例是“事件文章”和“视频文章”。在新闻通讯应用中,我有一个\“ content \”-字段(=电子邮件消息)。现在,我想选择几篇(任何类型的文章)包含在新闻通讯中。如果我仅创建一个功能搜索新闻通讯中尚未列出的所有文章,则可能会更容易。然后,我将收集所有需要的信息,将它们组合成文本并将该功能设置为该字段的认值。但是我宁愿自己选择文章。我想到了一个m2m字段,但是如何选择一些文章(在对象的编辑表单中以内联方式),并立即在内容字段中填充所需的信息(例如absolute_url或标题)?感谢您的帮助。     

解决方法

        唯一的选择是AJAX。设置一个将文章作为JSON返回的视图。当用户选择文章时,对该视图进行AJAX调用。然后,使用解析返回的JSON,并使用JavaScript填充文本字段。 views.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\'])
});
您显然必须进行一些调整,但这是基本过程。