ホームページビューを他のビューにリンクしようとしていますが、機能していません。単一のビューのみを取得しようとしましたが、それでも機能しません。複数のビューを単一のURLに接続する方法もわかりません。
app / views.py
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
from django.urls import path
from . import views
urlpatterns=[
path('', views.homePage),
]
app / forms.py
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
<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>
<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>
サインインフィールドが表示されていません。django-debug-toolbarに長いアドレスが表示されています
以下のようにURLパターンに名前を付けます。
urlpatterns=[
path('', views.homePage, name='home'),
]
次に、テンプレートでJinjaを使用してこれらの名前を次のように参照できます。
<a href="{% url 'home' %}">Home</a>
リンクを使用して、DjangoProjectサイトのチュートリアルから少しヘルプを得ることができます。
更新:
Navbar(ナビゲーションバー)を作成する必要があります。その後、ホームページのURLを使用してすべてのページを呼び出すことができます。お気に入り
Home | Services | Portfolio
各ページの名前でurlpatternsを作成する必要があり、それを好きなように使用できます。
<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つのそれぞれのビューを作成する必要があります。
urlpatterns=[
path('', views.homePage, name='home'),
path('services/', views.servicePage, name='services'),
path('portfolio/', views.portfolioPage, name='portfolio'),
]
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加