首页 > 解决方案 > 如何使用 Rest 框架将附件发送到 Django webapp?

问题描述

我收到了这个用 Django 制作的聊天应用程序,并被要求添加一个功能,帮助在聊天中发送附件,如文档和图像。我对此真的很陌生,不知道该怎么做。我确实找到了开发此聊天应用程序的来源: 使用 Django Rest Framework 的简单聊天应用程序

以下是发送和接收函数:

function send(sender, receiver, message) {
    $.post('/api/messages', '{"sender": "' + sender + '", "receiver": "' + receiver + '","message": "' + message + '" }', function (data) {
        console.log(data);
        var box = text_box.replace('{sender}', "You");
        box = box.replace('{message}', message);
        $('#board').append(box);
        scrolltoend();
    })
}


function receive() {
    $.get('/api/messages/' + sender_id + '/' + receiver_id, function (data) {
        console.log(data);
        if (data.length !== 0) {
            for (var i = 0; i < data.length; i++) {
                console.log(data[i]);
                var box = text_box.replace('{sender}', data[i].sender);
                box = box.replace('{message}', data[i].message);
                box = box.replace('right', 'left blue lighten-5');
                $('#board').append(box);

                scrolltoend();
            }
        }
    })
}

这是html文件中的代码:

<script>
  // For receiving, set global variables to be used by the 'receive' function
  sender_id = "{{ receiver.id }}"; //Context variable for receiver
  receiver_id = "{{ request.user.id }}"; //Context variable for current logged in user
  //For sending
  $(function () {
    scrolltoend(); // Function to show the latest message, which is at the bottom of the message box, by scrolling to the end
    //Handling the submit event to send the message.
    $('#chat-box').on('submit', function (event) {
      event.preventDefault();
      var message = $('#id_message');
      send('{{ request.user.username }}', '{{ receiver.username }}', message.val()); //Send function will be defined within 'chat.js'
      message.val(''); //Clear content of the the input field after sending
    })
    setInterval(() => {
      getUsers({{ request.user.id }}, doc => {
        let list = ''
        doc.map(userItem => {
          list += userItem
        })
        $('#users').html(list)
      });
  }, 1000)
        })
</script>

有人可以帮忙吗?

标签: djangodjango-rest-frameworkweb-applicationschat

解决方案


推荐阅读