如何在一个url中处理多个视图?

2024-04-25 23:03:02 发布

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

我在工作的主页,直到现在有一个网址两个视图 我怎么处理? 我将制作一篇文章和表格,以便在同一页中获得用户信息。你知道吗

你知道吗网址.py你知道吗

from django.urls import path
from . import views

app_name = "LandingPage"

urlpatterns = [
    path('', views.form_page, name='form_page'),

]

你知道吗视图.py你知道吗

from django.shortcuts import render, redirect
from django.utils import timezone
from multiurl import ContinueResolving
from .models import Article
from .forms import UserForm


# Article
def form_page(request):
    posts = Article.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
    return render(request, 'LandingPage/form_page.html', {'posts': posts})

# Add User
def user(request):
    if request.method == 'POST':
        form = UserForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('LandingPage:form_page')
    else:
        form = UserForm()
    return render(request, 'LandingPage/user.html', {'form': form})

Tags: djangofrompyimportform视图returnrequest
1条回答
网友
1楼 · 发布于 2024-04-25 23:03:02

在网址.py你只添加了一个视图(但你写了两个)。 您可以将两个视图函数合并为一个,并使用模板实现相同的功能。你知道吗

from django.shortcuts import render, redirect
from django.utils import timezone
from multiurl import ContinueResolving
from .models import Article
from .forms import UserForm


def form_page(request):
    if request.method == 'POST':
        form = UserForm(request.POST)
        if form.is_valid():
            form.save()
            return redirect('LandingPage:form_page')
    else:
        form = UserForm()
    posts = Article.objects.filter(published_date__lte=timezone.now()).order_by('published_date')
    return render(request, 'LandingPage/user.html', {'form': form, 'posts': posts})

相关问题 更多 >