Вызов текущего пользователя в представлении и шаблоне Django - PullRequest
0 голосов
/ 02 мая 2019

У меня есть вид, где канал чата создается между двумя пользователями.Я хочу уведомить пользователя, когда сообщение отправлено (от кого оно пришло), но у меня возникают проблемы с доступом к текущему пользователю (пользователю, который вошел в систему и отправил сообщение).В представлении ниже у меня есть «to_user», чье имя отображается правильно, однако «current_user» не отображается.

Вот мой views.py

@login_required
def create_channel(request, to_user_id):
    to_user = get_user_model().objects.get(pk=to_user_id)
    try:
        channel = Channel.objects.get(users=request.user, users__id=to_user_id)
    except Channel.DoesNotExist:
        channel = Channel.objects.create(
            channel_name='{from_user}-{to_user}'.format(from_user=request.user.username, to_user=to_user)
        )
        channel.users.add(request.user)
        channel.users.add(to_user)
        client = get_client()
        service = client.chat.services(settings.TWILIO_CHAT_SID)
        twilio_channel = service.channels.create(channel.channel_name)

        channel.twilio_chat_id = twilio_channel.sid

        twilio_channel.members.create(identity=request.user.get_twilio_user_id())
        twilio_channel.members.create(identity=to_user.get_twilio_user_id())
        channel.save()
        #email the to_user when they receive a message
        to_user = to_user
        current_user = request.user
        to_user_email = to_user.email
        user_email = current_user.email
        html_message_to_user = render_to_string('send_message_to_user.html', {'user': current_user,
                                                                            'to_user': to_user,
                                                                            'channel': channel,
                                                                            }
        #send email to the to_user
        send_mail(current_user.first_name + ' has sent you a message', plain_message_to_user, 'x@x.com', [to_user_email], fail_silently=False, html_message=html_message_to_user)
        mail_admins('A message has been sent', 'A message has been sent to ' + to_user.first_name + ' from ' + current_user.first_name, fail_silently=False, )

    return HttpResponseRedirect(reverse('chatapp:twilio', kwargs={'pk': channel.pk}))

Электронная почтаотправка правильно, однако имя_пользователя current_user не отображается.Я также попытался просто указать 'user' или 'request.user', и они тоже не работают.Я не уверен, как получить имя текущего пользователя для отображения в сообщении электронной почты или в шаблоне электронной почты.

Любая помощь приветствуется!

...