如何在Django中显示警告消息后重定向

时间:2019-08-08 03:14:13

标签: django

我正在创建新闻通讯应用,并在向用户显示成功消息后重定向功能无法正常工作。

我已经尝试了各种重构方法-

[How to pass a message from HttpResponseRedirect in Django?

[https://github.com/zsiciarz/django-envelope/issues/28]

from django.conf import settings
from django.contrib import messages
from django.shortcuts import render, redirect, reverse

from django.core.mail import send_mail, EmailMultiAlternatives
from django.template.loader import get_template


""" Create views """
from .forms import CustomerSubscriptionForm
from .models import CustomerSubscriptionUser

def customer_subscribe(request):
    form = CustomerSubscriptionForm(request.POST or None)

    if form.is_valid():
        instance = form.save(commit=False)
        if CustomerSubscriptionUser.objects.filter(email=instance.email).exists():
            messages.warning(request, "So you've already subscribe to us, so visit your email to see what we have in store for you!")
            return redirect('/experiment/subscribe') - **This is where the problem is**

        else:
            instance.save()
            messages.success(request, "We are excited that you're interested in being in our local dance community! We sent some more information to your email")

            subject = "Thank you for joining our community"
            from_email = settings.EMAIL_HOST_USER
            to_email = [instance.email]
            subscription_message = "Hi, LET'S DANCE. If you want to unsubscribe got to http://127.0.0.1:8000/experiment/unsubscribe/ "
            send_mail(subject=subject, from_email=from_email, recipient_list=to_email, message=subscription_message, fail_silently=False)    

    context = {'form': form}
    template = "experiment/subscribe.html"


    return render(request, template, context)


预期结果-提交请求的信息后,用户将重定向到表单视图

实际结果-仅显示message.warning值

0 个答案:

没有答案