Django 显示源代码而不是网页
Django displays source code instead of web page
我是 django 的新手。任何帮助将不胜感激。它显示源代码而不是网页。具体来说是基页 (base.html)。我想要的是使用来自不同组的患者详细信息和医生详细信息的数据。我认为问题出在我通过字典时。
Views.py
def booking(request):
if not request.user.is_active:
messages.success(
request, ("In order to book an appointment you must login first"))
return redirect('login')
doctor_details = Doctor.objects.all()
f = {'doctor_details': doctor_details}
g = request.user.groups.all()[0].name
if g == 'Patient':
patient_details = Patient.objects.all().filter(EmailAddress=request.user)
d = {'patient_details': patient_details}
return render(request, 'booking.html', f, d)
Html
{% extends 'base.html' %}
{% block content %}
{% load static %}
<div class="loginContainer">
<div class="img">
<img src="{% static 'image/booking.svg' %}">
</div>
<div class="login-content">
{% for d in patient_details %}
<form method="POST" id="signupForm">
{% for f in doctors_details %}
{% csrf_token %}
<h2 class="title">Booking form</h2>
<div class="input-div one">
<div class="i">
<ion-icon name="person-circle"></ion-icon>
</div>
<div class="div">
<h5>Patient ID: PID - {{d.id}}</h5>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="person"></ion-icon>
</div>
<div class="div">
<h5>Name: {{d.FirstName}} {{d.LastName}}</h5>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="business"></ion-icon>
</div>
<div class="div">
<h5>Department</h5>
<input type="text" class="input" name="age" required>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="medkit"></ion-icon>
</div>
<div class="div">
<h5>{{f.name}}</h5>
<input type="text" class="input" name="age" required>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="bandage"></ion-icon>
</div>
<div class="div">
<h5>Symptoms</h5>
<input type="textarea" class="input" name="address" required>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="document-text"></ion-icon>
</div>
<div class="div">
<h5>Comments (Optional)</h5>
<input type="textarea" class="input" name="address">
</div>
</div>
<button type="submit" class="loginBtn">Submit</button>
<a href="userProfile" class="section-btn btn btn-default btn-blue smoothScroll">Return to Personal Profile</a>
<a href="./" class="section-btn btn btn-default btn-blue smoothScroll">Cancel Booking</a>
{% endfor %}
</form>
{% endfor %}
</div>
</div>
{% ifequal error 'no' %}
<script type="text/javascript">
alert("You have successfully registered.")
window.location = ('loginPage')
</script>
{% endifequal %}
{% ifequal error 'yes' %}
<script type="text/javascript">
alert("Something went wrong.")
</script>
{% endifequal %}
{% endblock %}
Urls.py
from django.urls import path
from . import views
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('', views.index),
path('contact', views.contact),
path('loginPage', views.loginPage, name='login'),
path('doctorlogin', views.doctorlogin, name='doclogin'),
path('help', views.help),
path('signup', views.signup, name='signup'),
path('doctors', views.doctors, name='doctors'),
path('booking', views.booking, name='booking'),
path('userProfile', views.userProfile, name='userProfile'),
path('doctorProfile', views.doctorProfile, name='doctorProfile'),
path('logout', views.logout, name='logout')
]
urlpatterns = urlpatterns + \
static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
您应该将上下文作为一本字典传递。您可以使用 update
方法将新项目添加到您的词典中:
def booking(request):
if not request.user.is_active:
messages.success(
request, ("In order to book an appointment you must login first"))
return redirect('login')
doctor_details = Doctor.objects.all()
f = {'doctor_details': doctor_details}
g = request.user.groups.all()[0].name
if g == 'Patient':
patient_details = Patient.objects.all().filter(EmailAddress=request.user)
f.update({'patient_details': patient_details}) # Using update
return render(request, 'booking.html', f)
感谢大家的贡献。我发现了我的错误。问题出在我使用 views.py 的方式上。上面的答案是正确的,但我更喜欢这样使用。
Views.py
def booking(request):
if not request.user.is_active:
messages.success(
request, ("In order to book an appointment you must login first"))
return redirect('login')
doctor_details = Doctor.objects.all()
g = request.user.groups.all()[0].name
if g == 'Patient':
patient_details = Patient.objects.all().filter(EmailAddress=request.user)
d = {'patient_details': patient_details,
'doctor_details': doctor_details} #edited part
return render(request, 'booking.html', d)
以及 html 部分。
Html
{% extends 'base.html' %}
{% block content %}
{% load static %}
<div class="loginContainer">
<div class="img">
<img src="{% static 'image/booking.svg' %}">
</div>
<div class="login-content">
<form method="POST" id="signupForm">
{% csrf_token %}
<h2 class="title">Booking form</h2>
{% for f in patient_details%} #here is the change
<div class="input-div one">
<div class="i">
<ion-icon name="person-circle"></ion-icon>
</div>
<div class="div">
<h5>Patient ID: PID - {{f.id}}</h5>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="person"></ion-icon>
</div>
<div class="div">
<h5>Name: {{f.FirstName}} {{f.LastName}}</h5>
</div>
</div>
{% endfor %}
<div class="input-div one">
<div class="i">
<ion-icon name="business"></ion-icon>
</div>
<div class="div">
<h5>Department</h5>
<input type="text" class="input" name="age" required>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="medkit"></ion-icon>
</div>
<div class="div">
<div class="custom-select">
<select name="doctors" required>
{% for f in doctor_details %} #here is the change
<option value="{{f.name}}">{{f.name}}</option>
{% endfor %}
</select>
</div>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="bandage"></ion-icon>
</div>
<div class="div">
<h5>Symptoms</h5>
<input type="textarea" class="input" name="address" required>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="document-text"></ion-icon>
</div>
<div class="div">
<h5>Comments (Optional)</h5>
<input type="textarea" class="input" name="address">
</div>
</div>
<button type="submit" class="loginBtn">Submit</button>
<a href="userProfile" class="section-btn btn btn-default btn-blue smoothScroll">Return to Personal Profile</a>
<a href="./" class="section-btn btn btn-default btn-blue smoothScroll">Cancel Booking</a>
</form>
</div>
</div>
{% ifequal error 'no' %}
<script type="text/javascript">
alert("You have successfully registered.")
window.location = ('loginPage')
</script>
{% endifequal %}
{% ifequal error 'yes' %}
<script type="text/javascript">
alert("Something went wrong.")
</script>
{% endifequal %}
{% endblock %}
我是 django 的新手。任何帮助将不胜感激。它显示源代码而不是网页。具体来说是基页 (base.html)。我想要的是使用来自不同组的患者详细信息和医生详细信息的数据。我认为问题出在我通过字典时。
Views.py
def booking(request):
if not request.user.is_active:
messages.success(
request, ("In order to book an appointment you must login first"))
return redirect('login')
doctor_details = Doctor.objects.all()
f = {'doctor_details': doctor_details}
g = request.user.groups.all()[0].name
if g == 'Patient':
patient_details = Patient.objects.all().filter(EmailAddress=request.user)
d = {'patient_details': patient_details}
return render(request, 'booking.html', f, d)
Html
{% extends 'base.html' %}
{% block content %}
{% load static %}
<div class="loginContainer">
<div class="img">
<img src="{% static 'image/booking.svg' %}">
</div>
<div class="login-content">
{% for d in patient_details %}
<form method="POST" id="signupForm">
{% for f in doctors_details %}
{% csrf_token %}
<h2 class="title">Booking form</h2>
<div class="input-div one">
<div class="i">
<ion-icon name="person-circle"></ion-icon>
</div>
<div class="div">
<h5>Patient ID: PID - {{d.id}}</h5>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="person"></ion-icon>
</div>
<div class="div">
<h5>Name: {{d.FirstName}} {{d.LastName}}</h5>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="business"></ion-icon>
</div>
<div class="div">
<h5>Department</h5>
<input type="text" class="input" name="age" required>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="medkit"></ion-icon>
</div>
<div class="div">
<h5>{{f.name}}</h5>
<input type="text" class="input" name="age" required>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="bandage"></ion-icon>
</div>
<div class="div">
<h5>Symptoms</h5>
<input type="textarea" class="input" name="address" required>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="document-text"></ion-icon>
</div>
<div class="div">
<h5>Comments (Optional)</h5>
<input type="textarea" class="input" name="address">
</div>
</div>
<button type="submit" class="loginBtn">Submit</button>
<a href="userProfile" class="section-btn btn btn-default btn-blue smoothScroll">Return to Personal Profile</a>
<a href="./" class="section-btn btn btn-default btn-blue smoothScroll">Cancel Booking</a>
{% endfor %}
</form>
{% endfor %}
</div>
</div>
{% ifequal error 'no' %}
<script type="text/javascript">
alert("You have successfully registered.")
window.location = ('loginPage')
</script>
{% endifequal %}
{% ifequal error 'yes' %}
<script type="text/javascript">
alert("Something went wrong.")
</script>
{% endifequal %}
{% endblock %}
Urls.py
from django.urls import path
from . import views
from django.contrib import admin
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('', views.index),
path('contact', views.contact),
path('loginPage', views.loginPage, name='login'),
path('doctorlogin', views.doctorlogin, name='doclogin'),
path('help', views.help),
path('signup', views.signup, name='signup'),
path('doctors', views.doctors, name='doctors'),
path('booking', views.booking, name='booking'),
path('userProfile', views.userProfile, name='userProfile'),
path('doctorProfile', views.doctorProfile, name='doctorProfile'),
path('logout', views.logout, name='logout')
]
urlpatterns = urlpatterns + \
static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
您应该将上下文作为一本字典传递。您可以使用 update
方法将新项目添加到您的词典中:
def booking(request):
if not request.user.is_active:
messages.success(
request, ("In order to book an appointment you must login first"))
return redirect('login')
doctor_details = Doctor.objects.all()
f = {'doctor_details': doctor_details}
g = request.user.groups.all()[0].name
if g == 'Patient':
patient_details = Patient.objects.all().filter(EmailAddress=request.user)
f.update({'patient_details': patient_details}) # Using update
return render(request, 'booking.html', f)
感谢大家的贡献。我发现了我的错误。问题出在我使用 views.py 的方式上。上面的答案是正确的,但我更喜欢这样使用。 Views.py
def booking(request):
if not request.user.is_active:
messages.success(
request, ("In order to book an appointment you must login first"))
return redirect('login')
doctor_details = Doctor.objects.all()
g = request.user.groups.all()[0].name
if g == 'Patient':
patient_details = Patient.objects.all().filter(EmailAddress=request.user)
d = {'patient_details': patient_details,
'doctor_details': doctor_details} #edited part
return render(request, 'booking.html', d)
以及 html 部分。 Html
{% extends 'base.html' %}
{% block content %}
{% load static %}
<div class="loginContainer">
<div class="img">
<img src="{% static 'image/booking.svg' %}">
</div>
<div class="login-content">
<form method="POST" id="signupForm">
{% csrf_token %}
<h2 class="title">Booking form</h2>
{% for f in patient_details%} #here is the change
<div class="input-div one">
<div class="i">
<ion-icon name="person-circle"></ion-icon>
</div>
<div class="div">
<h5>Patient ID: PID - {{f.id}}</h5>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="person"></ion-icon>
</div>
<div class="div">
<h5>Name: {{f.FirstName}} {{f.LastName}}</h5>
</div>
</div>
{% endfor %}
<div class="input-div one">
<div class="i">
<ion-icon name="business"></ion-icon>
</div>
<div class="div">
<h5>Department</h5>
<input type="text" class="input" name="age" required>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="medkit"></ion-icon>
</div>
<div class="div">
<div class="custom-select">
<select name="doctors" required>
{% for f in doctor_details %} #here is the change
<option value="{{f.name}}">{{f.name}}</option>
{% endfor %}
</select>
</div>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="bandage"></ion-icon>
</div>
<div class="div">
<h5>Symptoms</h5>
<input type="textarea" class="input" name="address" required>
</div>
</div>
<div class="input-div one">
<div class="i">
<ion-icon name="document-text"></ion-icon>
</div>
<div class="div">
<h5>Comments (Optional)</h5>
<input type="textarea" class="input" name="address">
</div>
</div>
<button type="submit" class="loginBtn">Submit</button>
<a href="userProfile" class="section-btn btn btn-default btn-blue smoothScroll">Return to Personal Profile</a>
<a href="./" class="section-btn btn btn-default btn-blue smoothScroll">Cancel Booking</a>
</form>
</div>
</div>
{% ifequal error 'no' %}
<script type="text/javascript">
alert("You have successfully registered.")
window.location = ('loginPage')
</script>
{% endifequal %}
{% ifequal error 'yes' %}
<script type="text/javascript">
alert("Something went wrong.")
</script>
{% endifequal %}
{% endblock %}