python - 将数据从 jquery success 填充到模态时出现问题

标签 python jquery django

我有一个函数,它使用 AJAX 请求从 View 中获取数据并以模型中列表的形式返回数据。

在我的模型中,数据是用换行符输入的,但是在我的 jQuery 输出中,\n 字符被忽略。有人可以帮忙吗?

模型对象中的数据:

ankit: Hi govind!
go358938: Hi Ankit, how are you  ?

数据作为列表传递给 jquery:

{ 'list': 'ankit: Hi govind!\r\ngo358938: Hi Ankit, how are you  ?' }

模态中可见的数据:

ankit: Hi govind! go358938: Hi Ankit, how are you ?
$('#chatbox').on('show.bs.modal', function (event) {
  var button = $(event.relatedTarget) 
  var recipient = button.data('whatever') 
  $.ajax({
    url: "{% url 'fetcher' %}",
    data: {
      'search': recipient
    },
    dataType: 'json',
    success: function (data) {
      list = data.list;
      $('#chatbox').find('.modal-body').html(list);
    }
  });
});

View .py

def fetcher(request):
if request.is_ajax():
  name = User.objects.get(username=request.GET.get('search', None))
  b = ChatMessage.objects.get(user2 = name)
  print(b.message)
  data = {
    'list': b.message,
  }
  return JsonResponse(data)

最佳答案

首先,“jquery”输出是什么意思?

您的 HTML 输出为网站?好吧,“\n”不被视为“中断”,而是 <br/> .

从技术上讲,您的 html 文件如下所示:

<div>\n
  <p>Whatever</p>\n
  <p>Something different</p>\n
</div>

您不想计算每个 \n<br/> .

您有两个选择:

在支持 \n 的 html 元素中打印结果(例如 <pre>, <code> and <textarea> 执行)或替换您的 \n<br/> )。

解决方案 1:

<textarea class="modal-body-content">
This is a new line\nhere
</textarea>

$('#chatbox').find('.modal-body-content').html(list);

解决方案 2:

$('#chatbox').find('.modal-body').html(list.replace(/\n/g, '<br/>');

关于python - 将数据从 jquery success 填充到模态时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55965797/

相关文章:

Django:制作具有未定义字段数的模型

python - 从受约束的选择中将参数传递给 Django 中的 View

Python 读取文本 block

javascript - 将参数从 Toggle() 操作传递到 OnClick() 操作 Jquery

javascript - jQuery 中的 Click() 没有执行任何操作

jquery - 动画系列图像 block 彼此独立

django - 我如何在导入时进行事务回滚和提交

python - 了解 Dask 中分区的工作原理

python - 无法运行 Python 脚本 CRON : Import Error: No Module Named Tweepy

python - Nginx 或 Django 正在删除上传文件的权限