【问题标题】:How can I handle multiple views in one url?如何在一个 url 中处理多个视图?
【发布时间】:2019-10-07 17:12:47
【问题描述】:

我正在处理主页,到目前为止,一个 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})

【问题讨论】:

    标签: python django-forms django-views django-urls django-2.2


    【解决方案1】:

    在您添加的 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})
    

    【讨论】:

    • 我尝试了很多解决方案,但都成​​功了,非常感谢 :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多