django - 如果用户首次登录,则重定向页面

时间:2016-06-17 23:07:30

标签: python django django-forms django-views

如果用户第一次注册网站,我正在尝试重定向到已经创建的页面(clientsetup)。以下是我的views.py中的代码:

from django.shortcuts import render

from .forms.client_setup import ClientSetupForm
from .forms.podcast_setup import PodcastSetupForm
from .forms.episode_info import EpisodeInfoForm
from .forms.image_files import EpisodeImageFilesForm
from .forms.wordpress_info import WordpressInfoForm
from .forms.chapter_marks import ChapterMarksForm
from .forms.show_links import ShowLinksForm
from .forms.tweetables import TweetablesForm
from .forms.clicktotweet import ClickToTweetForm
from .forms.schedule import ScheduleForm

from producer.models import Client, Production, ChapterMark, ProductionLink, ProductionTweet, Podcast

from django.views.generic.edit import FormView

from django.core.urlresolvers import reverse

def dashboard(request):

    if request.user.is_authenticated():

        client = Client.objects.filter(user=request.user).first()

        if client is None:

                form = ClientSetupForm(request.POST or None)

                if form.is_valid():

                    instance = form.save(commit=False)
                    company_name = form.cleaned_data.get("company_name")
                    first_name = form.cleaned_data.get("first_name")
                    last_name = form.cleaned_data.get("last_name")

                    instance.company_name = company_name
                    instance.first_name = first_name
                    instance.last_name = last_name

                    instance.user = request.user

                    instance.save()

                    return render(request, "pod_funnel/forms.html")
        else:
                podcast = Podcast.objects.filter(client=client).first()

                if queryset.is_valid():

                    queryset = Client.objects.all()  # .filter(full_name__iexact="test3")
                    # print(Client.objects.all().order_by('-timestamp').filter(full_name__iexact="test3").count())
                    context = {
                        "queryset": queryset
                    }

                    return render(request, "pod_funnel/dashboard.html", context)
    return render(request, "pod_funnel/dashboard.html")

def clientsetup(request):

    title = 'Client Setup'
    title_align_center = True
    form = ClientSetupForm(request.POST or None)
    context = {
        "title": title,
        "form": form
    }

    if form.is_valid():

        instance = form.save(commit=False)

        company_name = form.cleaned_data.get("company_name")
        first_name = form.cleaned_data.get("first_name")
        last_name = form.cleaned_data.get("last_name")

        instance.company_name = company_name
        instance.first_name = first_name
        instance.last_name = last_name

        instance.user = request.user

        instance.save()

        return render(request, "pod_funnel/forms.html", context)

    else:

        return render(request, "pod_funnel/forms.html", context)


def podcastsetup(request):

    title = 'Podcast Setup'
    title_align_center = True
    form = PodcastSetupForm(request.POST or None)
    context = {
        "title": title,
        "form": form
    }

    if form.is_valid():

        instance = form.save(commit=False)

        name = form.cleaned_data.get("name")
        itunes_url = form.cleaned_data.get("itunes_url")
        client = form.cleaned_data.get("client")

        instance.name = name
        instance.itunes_url = itunes_url

        instance.client = client

        # instance.user = request.user

        instance.save()

        return render(request, "pod_funnel/forms_podcast_setup.html", context)

    else:

        return render(request, "pod_funnel/forms_podcast_setup.html", context)

我遇到的问题是,如果您是第一次登录我仍然会直接发送给dashboard,我希望它转到clientsetup,然后返回dashboard当一切都在那里完成时。

通常情况下,当您注册或登录时,您会直接进入dashboard并从那里开始自我引导,但只是想让第一次到达的人更容易。

我还将clientsetup中的相同实例添加到if内的dashboard语句中。

感谢任何建议。

0 个答案:

没有答案