Как отправить сообщение от одного к другому пользователю с помощью Django? - PullRequest
0 голосов
/ 30 марта 2019

Я хочу создать пользовательское веб-приложение для сообщений, в которое пользователи могут отправлять сообщения друг другу (не чат, а просто отправка сообщения).У меня есть модель сообщения и форма сообщения, но я не знаю, как выглядят представления и шаблоны.Я не могу найти учебник или что-то об этом, в основном я нашел только библиотеки или что-то в этом роде.Тогда как насчет этих представлений и шаблонов?

здесь мои models.py:

from django.contrib.auth import get_user_model

class Message(models.Model):
     sender = models.ForeignKey(get_user_model(), related_name="sender")
     receiver = models.ManyToManyField(get_user_model(), related_name="receiver")
     message_file = models.FileField(upload_to='mails/')
     timestamp = models.DateTimeField(auto_now_add=True)
     unread = models.BooleanField(default = True)

forms.py

from django import forms

from .models import Message

class MessageForm(forms.ModelForm):
    class Meta:
        model   = Message
        fields  =[
            'sender',
            'receiver',
            'message_file',
        ]

Спасибо за дополнительную информацию

1 Ответ

0 голосов
/ 30 марта 2019

Вместо использования формы, я приведу простой пример, использующий более простой подход.Вам нужно что-то вроде этого:

views.py

class SendMessageView(View):
    def post(self, request, *args, **kwargs):
        receiver_id = request.POST.get('receiver_id', '')
        file = request.FILES.get('file', '')
        Message.objects.create(sender=request.user, receiver__id=receiver_id, message_file=file)
        return render(request, 'success.html', {})

urls.py

path('message/send/', views.SendMessageView.as_view(), name="send_message")

html

<form action="{% url 'send_message' %}" method="post">
    {% csrf_token %}
    <input type="hidden" name="receiver_id" value="{{ receiver.id }}" />
    <input type="file" name="file" />
</form>
...