Django重定向页面(如果用户首次登录)

2024-04-25 07:06:48 发布

您现在位置:Python中文网/ 问答频道 /正文

如果用户是第一次注册到该网站,我尝试重定向到已经创建的页面(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)

我遇到的问题是,如果您第一次登录并且我想让它转到clientsetup,它仍然会直接将我发送到dashboard,然后在那里完成所有操作后返回dashboard。你知道吗

通常,当您注册或登录时,您会直接进入dashboard,并从那里引导自己,但只是想让第一次到达的人更容易。你知道吗

我还将相同的实例从clientsetup添加到dashboard内的if语句中。你知道吗

如有任何建议,我将不胜感激。你知道吗


Tags: instancenamefromimportformclientdataget