如何在一个 url 中处理多个视图?
How can I handle multiple views in one url?
我正在处理主页,直到现在,一个视图有两个视图 URL
我该如何处理?
我会做一个文章和一个表格来在同一个页面中获取用户信息。
urls.py
from django.urls import path
from . import views
app_name = "LandingPage"
urlpatterns = [
path('', views.form_page, name='form_page'),
]
views.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})
在urls.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})
我正在处理主页,直到现在,一个视图有两个视图 URL 我该如何处理? 我会做一个文章和一个表格来在同一个页面中获取用户信息。
urls.py
from django.urls import path
from . import views
app_name = "LandingPage"
urlpatterns = [
path('', views.form_page, name='form_page'),
]
views.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})
在urls.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})