首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将homePage视图链接到其他视图

将homePage视图链接到其他视图
EN

Stack Overflow用户
提问于 2019-09-03 23:51:17
回答 2查看 126关注 0票数 1

我正在尝试将我的主页视图链接到其他视图,但它不起作用,我也尝试只使用一个视图,但它仍然不能工作,我也不知道如何将多个视图连接到一个URL中

app/views.py

代码语言:javascript
复制
from django.http import HttpResponse, HttpResponseRedirect
from django.shortcuts import redirect
from django.shortcuts import render
from homePage.forms import SignInForm,DropUsaMessage
# Create your views here.
def homePage(request):
    sign_in_detail=SignIn
    message_detail=DropUsaMessage
    return render(request, "index.html",{"form":sign_in_detail,"forms":message_detail})

def SignIn(request):
    sign_in_detail=SignInForm()
    if request.method == 'POST':
        sign_in_detail = SignInForm(request.POST)
        if sign_in_detail.is_valid():
            return render(request, "index2.html",{"form":sign_in_detail})
    else:
        sign_in_detail = SignInForm()
        # "form":sign_in_detail
    return render(request, "index.html",{})

def Contact(request):
    message_detail=DropUsaMessage()
    if request.method == 'POST':
        message_detail = DropUsaMessage(request.POST)
        if message_detail.is_valid():
            return homePage(request)
    else:
        message_detail = DropUsaMessage()
        # "forms":message_detail
    return render(request, "index.html",{"forms":message_detail})

app/urls.py

代码语言:javascript
复制
from django.urls import path
from . import views

urlpatterns=[
        path('', views.homePage),
]

app/forms.py

代码语言:javascript
复制
from django import forms
from django.core import validators

class SignInForm(forms.Form):
    email=forms.EmailField(widget=forms.EmailInput(attrs={"class": 'form-control',"placeholder":'Enter E-mail',"id": 'exampleInputEmail1'}))
    password=forms.CharField(widget=forms.PasswordInput(attrs={"class":'form-control',"placeholder":'Enter Password',"id":'exampleInputPassword1'}))

class DropUsaMessage(forms.Form):
    name = forms.CharField(widget=forms.TextInput(attrs={"class":'form-control',"placeholder":'Your Name'}))
    email = forms.EmailField(widget=forms.EmailInput(attrs={"class": 'form-control',"placeholder":'Your E-mail',"id": 'exampleInputEmail1'}))
    phone = forms.IntegerField(widget=forms.NumberInput(attrs={"class":'form-control',"placeholder":'Your Phone Number'}))
    message = forms.CharField(widget=forms.Textarea(attrs={"class":'form-control',"placeholder":'Type Your Message',"style":'width:100%; height: 150px'}))

index.html

代码语言:javascript
复制
      <div class="container-fluid">

        <div class="row">
          <div class="col-md-8">
            <img src="{% static 'img/sampleImage.jpg' %}" width="100%" height="100%" class="d-inline-block align-top" alt="">
          </div>
          <div class="col-md-4">
            <form method="POST">
              {% csrf_token %}
              {{ form }}
              <div class="form-check">
                  <span class="fpswd">Forgot <a href="#">password?</a></span>
              </div>
              <button type="submit" class="btn btn-primary" name="SignIn">Submit</button>
            </form>



          </div>
        </div>
      </div>
代码语言:javascript
复制
<div class="container contact-form">
              <form  method="post">
                      <h3>Drop Us a Message</h3>
                              {% csrf_token %}
                              {{ forms }}<br><br>
                              <div class="form-group">
                                  <input type="submit" name="SendMessage" class="btnContact" value="Send Message" />
                              </div>



              </form>
      </div>

signin字段没有出现。在django-调试-工具栏中显示了一个长地址。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-09-04 02:19:45

给您的URL模式命名如下:

代码语言:javascript
复制
urlpatterns=[
        path('', views.homePage, name='home'),
]

然后,在模板中,您可以使用Jinja引用这些名称如下。

代码语言:javascript
复制
<a href="{% url 'home' %}">Home</a>

您可以从DjangoProject站点教程获得一些关于链接的帮助。

更新:

您需要创建一个Navbar (导航栏)。然后,您可以使用主页中的URLS调用所有页面。喜欢

代码语言:javascript
复制
Home | Services | Portfolio 

您需要为每个页面创建具有名称的urlpatterns,然后您可以像这样使用它。

代码语言:javascript
复制
<ul><li><a href="{% url 'home' %}">Home</a></li> 
<ul><li><a href="{% url 'services' %}">Services</a></li>
<ul><li><a href="{% url 'portfolio' %}">Portfolio</a></li>. 

因此,所有的页面将链接到您的主页,您可以导航。

为此,您需要在urls.py中分别创建3个视图,如下所示:

代码语言:javascript
复制
urlpatterns=[
        path('', views.homePage, name='home'),
        path('services/', views.servicePage, name='services'),
        path('portfolio/', views.portfolioPage, name='portfolio'),
]
票数 2
EN

Stack Overflow用户

发布于 2019-09-04 07:31:16

一个URL上不能有多个视图。一个URL映射到一个视图。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57779900

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档